Initial commit: breakpilot-compliance - Compliance SDK Platform
Services: Admin-Compliance, Backend-Compliance, AI-Compliance-SDK, Consent-SDK, Developer-Portal, PCA-Platform, DSMS Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
159
breakpilot-compliance-sdk/hardware/mac-mini/setup.sh
Normal file
159
breakpilot-compliance-sdk/hardware/mac-mini/setup.sh
Normal file
@@ -0,0 +1,159 @@
|
||||
#!/bin/bash
|
||||
# BreakPilot Compliance SDK - Mac Mini Setup Script
|
||||
# Hardware: Mac Mini M4 Pro, 64GB RAM
|
||||
|
||||
set -e
|
||||
|
||||
echo "=========================================="
|
||||
echo "BreakPilot Compliance SDK - Mac Mini Setup"
|
||||
echo "=========================================="
|
||||
|
||||
# Check prerequisites
|
||||
check_prerequisites() {
|
||||
echo "Checking prerequisites..."
|
||||
|
||||
# Check Docker
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "Error: Docker is not installed"
|
||||
echo "Please install Docker Desktop for Mac from https://www.docker.com/products/docker-desktop"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check Ollama
|
||||
if ! command -v ollama &> /dev/null; then
|
||||
echo "Installing Ollama..."
|
||||
curl -fsSL https://ollama.com/install.sh | sh
|
||||
fi
|
||||
|
||||
echo "Prerequisites OK"
|
||||
}
|
||||
|
||||
# Configure Docker resources
|
||||
configure_docker() {
|
||||
echo "Configuring Docker resources..."
|
||||
|
||||
# Docker Desktop settings recommendation
|
||||
echo ""
|
||||
echo "Please ensure Docker Desktop is configured with:"
|
||||
echo " - Memory: 32 GB (minimum)"
|
||||
echo " - CPUs: 10 (recommended)"
|
||||
echo " - Disk: 100 GB (minimum)"
|
||||
echo ""
|
||||
echo "You can configure this in Docker Desktop > Settings > Resources"
|
||||
echo ""
|
||||
read -p "Press Enter when Docker is configured..."
|
||||
}
|
||||
|
||||
# Install LLM models
|
||||
install_models() {
|
||||
echo "Installing LLM models..."
|
||||
|
||||
# Pull embedding model
|
||||
echo "Pulling embedding model (bge-m3)..."
|
||||
ollama pull bge-m3
|
||||
|
||||
# Pull main LLM
|
||||
echo "Pulling Qwen 2.5 32B (this may take a while)..."
|
||||
ollama pull qwen2.5:32b
|
||||
|
||||
echo "Models installed successfully"
|
||||
}
|
||||
|
||||
# Create environment file
|
||||
create_env_file() {
|
||||
echo "Creating environment file..."
|
||||
|
||||
if [ -f .env ]; then
|
||||
echo ".env file already exists, skipping..."
|
||||
return
|
||||
fi
|
||||
|
||||
# Generate random secrets
|
||||
JWT_SECRET=$(openssl rand -hex 32)
|
||||
DB_PASSWORD=$(openssl rand -hex 16)
|
||||
MINIO_SECRET=$(openssl rand -hex 16)
|
||||
|
||||
cat > .env << EOF
|
||||
# BreakPilot Compliance SDK - Environment Configuration
|
||||
# Generated on $(date)
|
||||
|
||||
# Database
|
||||
DB_PASSWORD=${DB_PASSWORD}
|
||||
|
||||
# JWT
|
||||
JWT_SECRET=${JWT_SECRET}
|
||||
|
||||
# MinIO
|
||||
MINIO_ACCESS_KEY=breakpilot
|
||||
MINIO_SECRET_KEY=${MINIO_SECRET}
|
||||
|
||||
# Maintenance (optional)
|
||||
MAINTENANCE_API_KEY=
|
||||
DEVICE_ID=mac-mini-$(hostname | tr '[:upper:]' '[:lower:]')
|
||||
EOF
|
||||
|
||||
echo ".env file created"
|
||||
echo "IMPORTANT: Keep this file secure and back it up!"
|
||||
}
|
||||
|
||||
# Start services
|
||||
start_services() {
|
||||
echo "Starting services..."
|
||||
|
||||
docker compose up -d
|
||||
|
||||
echo "Waiting for services to be ready..."
|
||||
sleep 10
|
||||
|
||||
# Check health
|
||||
echo "Checking service health..."
|
||||
|
||||
if curl -s http://localhost:80/health | grep -q "healthy"; then
|
||||
echo "API Gateway: OK"
|
||||
else
|
||||
echo "API Gateway: Not ready yet (this is normal during first start)"
|
||||
fi
|
||||
}
|
||||
|
||||
# Print summary
|
||||
print_summary() {
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "Setup Complete!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "Services:"
|
||||
echo " API Gateway: https://localhost (or http://localhost:80)"
|
||||
echo " PostgreSQL: localhost:5432"
|
||||
echo " Redis: localhost:6379"
|
||||
echo " Qdrant: localhost:6333"
|
||||
echo " MinIO Console: http://localhost:9001"
|
||||
echo ""
|
||||
echo "LLM Models (via Ollama on host):"
|
||||
echo " Embedding: bge-m3"
|
||||
echo " Chat: qwen2.5:32b"
|
||||
echo ""
|
||||
echo "Commands:"
|
||||
echo " Start: docker compose up -d"
|
||||
echo " Stop: docker compose down"
|
||||
echo " Logs: docker compose logs -f"
|
||||
echo " Status: docker compose ps"
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo " 1. Configure your client with API endpoint: http://$(hostname):80/api/v1"
|
||||
echo " 2. Generate an API key from the admin dashboard"
|
||||
echo " 3. Start integrating the SDK in your application"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Main
|
||||
main() {
|
||||
check_prerequisites
|
||||
configure_docker
|
||||
install_models
|
||||
create_env_file
|
||||
start_services
|
||||
print_summary
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user