A previous `git pull --rebase origin main` dropped 177 local commits,
losing 3400+ files across admin-v2, backend, studio-v2, website,
klausur-service, and many other services. The partial restore attempt
(660295e2) only recovered some files.
This commit restores all missing files from pre-rebase ref 98933f5e
while preserving post-rebase additions (night-scheduler, night-mode UI,
NightModeWidget dashboard integration).
Restored features include:
- AI Module Sidebar (FAB), OCR Labeling, OCR Compare
- GPU Dashboard, RAG Pipeline, Magic Help
- Klausur-Korrektur (8 files), Abitur-Archiv (5+ files)
- Companion, Zeugnisse-Crawler, Screen Flow
- Full backend, studio-v2, website, klausur-service
- All compliance SDKs, agent-core, voice-service
- CI/CD configs, documentation, scripts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
160 lines
3.9 KiB
Bash
160 lines
3.9 KiB
Bash
#!/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 "$@"
|