mirror of
https://github.com/trailofbits/buttercup
synced 2026-06-21 14:11:39 +00:00
105 lines
2.3 KiB
Bash
Executable File
105 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Local Development Setup Script for Buttercup CRS
|
|
# This script automates the setup process for local development
|
|
|
|
set -e
|
|
|
|
# Source common functions
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "$SCRIPT_DIR/common.sh"
|
|
|
|
echo "🚀 Setting up Buttercup CRS for local development..."
|
|
|
|
# Check if running as root
|
|
check_not_root
|
|
|
|
# Function to setup configuration
|
|
setup_config() {
|
|
setup_config_file
|
|
|
|
# Generate a secure master key for LiteLLM
|
|
generate_litellm_master_key
|
|
|
|
# Generate key ID/token for CRS
|
|
generate_crs_key_id_token
|
|
|
|
# Configure required API keys
|
|
configure_local_api_keys
|
|
|
|
# Configure LLM Budget
|
|
configure_llm_budget
|
|
|
|
# Configure LangFuse (optional)
|
|
configure_langfuse
|
|
|
|
# Configure SigNoz deployment (optional)
|
|
configure_otel
|
|
}
|
|
|
|
# Function to verify setup
|
|
verify_setup() {
|
|
print_status "Verifying setup..."
|
|
|
|
# Use the main Makefile validation target
|
|
if make validate >/dev/null 2>&1; then
|
|
print_success "Setup verification completed successfully!"
|
|
print_status "Next steps:"
|
|
echo " 1. Run: make deploy"
|
|
echo " 2. Test with: make send-libpng-task"
|
|
else
|
|
print_error "Setup verification failed. Run 'make validate' for details."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
install_linux() {
|
|
install_docker
|
|
install_kubectl
|
|
install_helm
|
|
install_minikube
|
|
install_git_lfs
|
|
install_uv
|
|
}
|
|
|
|
install_macos() {
|
|
check_brew
|
|
install_docker_mac
|
|
install_helm_mac
|
|
install_minikube_mac
|
|
install_git_lfs_mac
|
|
install_uv_mac
|
|
}
|
|
|
|
# Main execution
|
|
main() {
|
|
print_status "Starting local development setup..."
|
|
|
|
# Detect operating system and install dependencies
|
|
OS="$(uname -s)"
|
|
case "$OS" in
|
|
Linux*)
|
|
print_status "Detected Linux - installing Linux dependencies..."
|
|
install_linux
|
|
;;
|
|
Darwin*)
|
|
print_status "Detected macOS - installing macOS dependencies..."
|
|
install_macos
|
|
;;
|
|
*)
|
|
print_error "Unsupported operating system: $OS"
|
|
print_error "This script supports Linux and macOS only."
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
setup_config
|
|
|
|
verify_setup
|
|
|
|
print_success "Local development setup completed!"
|
|
}
|
|
|
|
# Run main function
|
|
main "$@"
|