Quick Start β
Get GripDay up and running in minutes with our streamlined setup process. Choose the approach that best fits your needs.
π― Choose Your Path β
| Approach | Best For | Time | Complexity |
|---|---|---|---|
| π³ Docker Compose | Quick testing, development | 5 minutes | Low |
| βΈοΈ Kubernetes (Minikube) | Production-like development | 15 minutes | Medium |
| βοΈ Cloud Deployment | Production deployment | 30 minutes | High |
π³ Option 1: Docker Compose (Fastest) β
Perfect for getting started quickly and testing the platform.
Prerequisites β
- Docker Desktop 4.20+
- Git
- 8GB RAM, 4 CPU cores
Setup β
bash
# 1. Clone the repository
git clone https://github.com/GripDay/gripday.git gripday-platform
cd gripday-platform
# 2. Start the platform
./scripts/quick-start.sh
# 3. Wait for services to be ready (2-3 minutes)
# The script will show progress and health checksAccess Points β
Once started, access these services:
- π Web Application: http://localhost:3000
- π API Gateway: http://localhost:8080
- π Grafana Dashboard: http://localhost:3001 (admin/admin)
- π Jaeger Tracing: http://localhost:16686
- π Prometheus: http://localhost:9090
Quick Test β
bash
# Test the API
curl -X GET http://localhost:8080/api/v1/health
# Create a test contact
curl -X POST http://localhost:8080/api/v1/contacts \
-H "Content-Type: application/json" \
-d '{
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com",
"company": "Acme Corp"
}'βΈοΈ Option 2: Kubernetes with Minikube β
Recommended for development that mirrors production deployment.
Prerequisites β
- Minikube 1.31+
- kubectl 1.28+
- Helm 3.12+
- Docker Desktop
- 16GB RAM, 4+ CPU cores
Setup β
bash
# 1. Clone the repository
git clone https://github.com/GripDay/gripday.git
cd gripday-platform
# 2. Start Minikube cluster
minikube start --cpus=4 --memory=8192 --disk-size=50g
# 3. Deploy GripDay
./scripts/k8s-quick-start.sh
# 4. Wait for deployment (5-10 minutes)
kubectl wait --for=condition=available --timeout=600s deployment --allAccess Services β
bash
# Get cluster IP
minikube ip
# Port forward for local access
kubectl port-forward svc/api-gateway 8080:8080 &
kubectl port-forward svc/web-app 3000:3000 &
kubectl port-forward svc/grafana 3001:3000 &
# Or use Minikube tunnel for LoadBalancer access
minikube tunnelβοΈ Option 3: Cloud Deployment β
Deploy to your cloud provider for production use.
AWS EKS β
bash
# 1. Create EKS cluster
eksctl create cluster --name gripday --region us-west-2 --nodes 3
# 2. Deploy GripDay
helm repo add gripday https://github.com/GripDay/helm-charts
helm install gripday GripDay/gripday
# 3. Get LoadBalancer URL
kubectl get svc api-gateway -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'Google GKE β
bash
# 1. Create GKE cluster
gcloud container clusters create gripday --num-nodes=3 --zone=us-central1-a
# 2. Deploy GripDay
helm repo add gripday https://charts.gripday.com
helm install gripday GripDay/gripday
# 3. Get LoadBalancer IP
kubectl get svc api-gateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}'π First Steps After Installation β
1. Create Your First User β
bash
# Using the web interface
open http://localhost:3000/register
# Or via API
curl -X POST http://localhost:8080/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{
"username": "admin",
"email": "admin@yourcompany.com",
"password": "SecurePassword123!",
"firstName": "Admin",
"lastName": "User"
}'2. Import Sample Data β
bash
# Import sample contacts
curl -X POST http://localhost:8080/api/v1/contacts/import \
-H "Content-Type: multipart/form-data" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-F "file=@examples/sample-contacts.csv"3. Create Your First Email Campaign β
bash
# Create email template
curl -X POST http://localhost:8080/api/v1/emails/templates \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-d '{
"name": "Welcome Email",
"subject": "Welcome to {{company}}!",
"content": "<h1>Welcome {{firstName}}!</h1><p>Thanks for joining us.</p>"
}'
# Send campaign
curl -X POST http://localhost:8080/api/v1/emails/campaigns \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-d '{
"name": "Welcome Campaign",
"templateId": 1,
"segmentId": 1,
"scheduleType": "immediate"
}'4. Build Your First Form β
bash
# Create lead capture form
curl -X POST http://localhost:8080/api/v1/forms \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-d '{
"name": "Contact Form",
"fields": [
{"name": "firstName", "type": "text", "label": "First Name", "required": true},
{"name": "lastName", "type": "text", "label": "Last Name", "required": true},
{"name": "email", "type": "email", "label": "Email", "required": true},
{"name": "company", "type": "text", "label": "Company", "required": false}
]
}'π Verify Installation β
Health Checks β
bash
# Check all services are healthy
curl http://localhost:8080/api/v1/health
# Check individual service health
curl http://localhost:8080/api/v1/auth/health
curl http://localhost:8080/api/v1/contacts/health
curl http://localhost:8080/api/v1/emails/health
curl http://localhost:8080/api/v1/campaigns/healthPerformance Test β
bash
# Run basic performance test
./scripts/performance-test.sh
# Expected results:
# - API response time: < 200ms
# - Contact creation: > 100 contacts/second
# - Email processing: > 1000 emails/minuteMonitoring Dashboard β
Visit Grafana at http://localhost:3001 to see:
- System Metrics: CPU, memory, disk usage
- Application Metrics: Request rates, response times, error rates
- Business Metrics: Contacts created, emails sent, campaigns active
π§ Configuration β
Environment Variables β
Create .env file for customization:
bash
# Database
POSTGRES_PASSWORD=your-secure-password
# JWT Security
JWT_SECRET=your-super-secret-jwt-key-minimum-32-characters
# Email Configuration
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your-email@gmail.com
SMTP_PASSWORD=your-app-password
# Redis
REDIS_PASSWORD=your-redis-password
# Feature Flags
ENABLE_REGISTRATION=true
ENABLE_EMAIL_VERIFICATION=false
ENABLE_MULTI_TENANT=falseCustom Configuration β
bash
# Apply custom configuration
cp config/custom.yml config/local.yml
# Edit config/local.yml with your settings
# Restart with new configuration
./scripts/restart.shπ οΈ Development Mode β
Enable Hot Reloading β
bash
# Start in development mode
./scripts/dev-mode.sh
# This enables:
# - Hot reloading for Java services
# - Live reload for React frontend
# - Debug ports for all services
# - Detailed loggingDebug Ports β
When running in development mode:
- API Gateway: 5000
- User Service: 5001
- Contact Service: 5002
- Email Service: 5003
- Campaign Service: 5004
- Form Service: 5005
- Scoring Service: 5006
- Analytics Service: 5007
π¨ Troubleshooting β
Common Issues β
Services Not Starting β
bash
# Check Docker resources
docker system df
docker system prune -f
# Check logs
./scripts/logs.sh
# Restart specific service
./scripts/restart-service.sh contact-serviceDatabase Connection Issues β
bash
# Check PostgreSQL status
docker exec -it gripday-postgres-auth pg_isready
# Reset database
./scripts/reset-database.sh
# Check database logs
docker logs gripday-postgres-authMemory Issues β
bash
# Check memory usage
docker stats
# Increase Docker memory limit to 8GB+
# Restart Docker DesktopGetting Help β
- π Documentation: Full documentation
- π Issues: GitHub Issues
- π¬ Community: Discord Server
- π§ Support: support@gripday.com
π Next Steps β
Now that GripDay is running, explore these areas:
- Architecture Overview - Understand the platform design
- Development Guide - Start contributing
- Configuration Guide - Detailed configuration options
- Monitoring Guide - Set up monitoring and alerting
- Contributing Guide - How to contribute to the project
π Welcome to GripDay! β
You now have a fully functional B2B marketing automation platform running locally. The platform includes:
- β Contact Management - Manage contacts and companies
- β Email Marketing - Create and send email campaigns
- β Campaign Automation - Build automated workflows
- β Form Builder - Create lead capture forms
- β Lead Scoring - Score and qualify leads
- β Analytics - Track performance and ROI
- β API Access - Full REST API access
- β Monitoring - Comprehensive observability
Start exploring the platform and building your marketing automation workflows!
Need help? Check our support guide or join our community Discord.