mirror of
https://github.com/taylanbakircioglu/flowfish.git
synced 2026-09-21 01:53:27 +00:00
834ea93dec
Made-with: Cursor
216 lines
6.0 KiB
Markdown
216 lines
6.0 KiB
Markdown
# Flowfish - Quick Start Guide
|
|
|
|
Get Flowfish up and running in 10 minutes!
|
|
|
|
## ⚡ Prerequisites
|
|
|
|
- Kubernetes 1.27+ or OpenShift 4.13+
|
|
- kubectl/oc configured and connected to your cluster
|
|
- 16GB RAM, 4 CPU cores available
|
|
- (Optional) Helm 3.x for Helm installation
|
|
|
|
## 🚀 Installation Steps
|
|
|
|
### Step 1: Deploy Flowfish (2 minutes)
|
|
|
|
```bash
|
|
# Clone repository
|
|
git clone https://github.com/yourusername/flowfish.git
|
|
cd flowfish
|
|
|
|
# Deploy to Kubernetes
|
|
kubectl apply -f deployment/kubernetes-manifests/
|
|
```
|
|
|
|
### Step 2: Wait for Pods (3-5 minutes)
|
|
|
|
```bash
|
|
# Watch pods starting
|
|
kubectl get pods -n flowfish -w
|
|
|
|
# All pods should be "Running" and "Ready"
|
|
# Expected pods:
|
|
# - frontend (2 replicas)
|
|
# - backend (3 replicas)
|
|
# - postgresql (1 replica)
|
|
# - redis (1 replica)
|
|
# - clickhouse (3 replicas)
|
|
# - neo4j (1 replica)
|
|
# - inspektor-gadget (DaemonSet, 1 per node)
|
|
```
|
|
|
|
### Step 3: Access UI (1 minute)
|
|
|
|
```bash
|
|
# Port-forward frontend service
|
|
kubectl port-forward svc/frontend -n flowfish 3000:3000
|
|
|
|
# Open browser
|
|
open http://localhost:3000
|
|
```
|
|
|
|
**Login Credentials**:
|
|
- Username: `admin`
|
|
- Password: `admin123`
|
|
|
|
⚠️ **Important**: Change password after first login!
|
|
|
|
## 🎯 First Steps After Login
|
|
|
|
### 1. Add Your First Cluster (2 minutes)
|
|
|
|
**Prerequisites**:
|
|
- The `cluster-manager` service must be running (included in Docker Compose by default)
|
|
- For **remote clusters** (not the cluster Flowfish is deployed on): run the **Setup Script** on the target cluster first. Navigate to **Add Cluster** → **Setup Script** tab to generate the script for your provider. This installs Inspektor Gadget and creates the required ServiceAccount/RBAC.
|
|
|
|
Navigate to **Management** → **Cluster Management** → **Add Cluster**
|
|
|
|
**Fill in details**:
|
|
- **Name**: `my-first-cluster`
|
|
- **Type**: `kubernetes` or `openshift`
|
|
- **API URL**: Your cluster API URL (e.g., `https://api.cluster.example.com:6443`)
|
|
- **Authentication**: Upload kubeconfig or paste service account token
|
|
|
|
**Click Save**. Flowfish will connect and start discovering workloads.
|
|
|
|
**Troubleshooting**: If pods/nodes/namespaces show 0 after adding a cluster:
|
|
- Check cluster-manager logs: `docker logs flowfish-cluster-manager` (Docker Compose) or `kubectl logs -l app=cluster-manager -n flowfish` (Kubernetes)
|
|
- Verify the Setup Script was run on the target cluster
|
|
- Ensure `FLOWFISH_ENCRYPTION_KEY` is the same for both `backend` and `cluster-manager` services
|
|
|
|
### 2. Create Your First Analysis (3 minutes)
|
|
|
|
Navigate to **Analysis** → **Create New**
|
|
|
|
**Step 1: Scope**
|
|
- Select: **Namespace**
|
|
- Choose 1-2 namespaces to analyze (start small!)
|
|
|
|
**Step 2: Gadgets**
|
|
- ✅ Network Traffic (TCP/UDP)
|
|
- ✅ DNS Queries
|
|
- ☐ Leave others unchecked for now
|
|
|
|
**Step 3: Time**
|
|
- Select: **Continuous** (runs until you stop it)
|
|
|
|
**Step 4: Output**
|
|
- ✅ Application Dependency Dashboard
|
|
- ☐ LLM Analysis (skip for now)
|
|
|
|
**Click "Create Analysis"**
|
|
|
|
### 3. Start Analysis (< 1 minute)
|
|
|
|
- Go to **Analysis List**
|
|
- Find your analysis
|
|
- Click **Start** button
|
|
- Wait 30-60 seconds for data collection to begin
|
|
|
|
### 4. View Live Map (Instant!)
|
|
|
|
Navigate to **Discovery** → **Live Map**
|
|
|
|
You should see:
|
|
- **Nodes**: Your pods, deployments, services
|
|
- **Edges**: Communication flows between them
|
|
- **Live updates**: New connections appearing in real-time
|
|
|
|
**Try This**:
|
|
- Click a node → See details in right panel
|
|
- Drag nodes → Reposition manually
|
|
- Use filters → Filter by namespace or risk level
|
|
- Change layout → Try "Hierarchical" or "Force-directed"
|
|
|
|
## 🎉 Success!
|
|
|
|
You now have Flowfish running and analyzing your cluster!
|
|
|
|
## 🚀 Next Steps
|
|
|
|
### Explore Dashboards
|
|
|
|
1. **Overview Dashboard** - See system metrics, top services, risk distribution
|
|
2. **Traffic Dashboard** - Analyze traffic patterns and protocols
|
|
3. **Security Dashboard** - View risk scores and security alerts
|
|
|
|
### Enable Advanced Features
|
|
|
|
#### Add LLM for Anomaly Detection
|
|
|
|
1. Go to **Management** → **Integration Settings** → **LLM Configuration**
|
|
2. Add your OpenAI API key
|
|
3. Enable anomaly detection
|
|
4. Set frequency (e.g., every 15 minutes)
|
|
|
|
#### Configure Webhooks
|
|
|
|
1. Go to **Management** → **Integration Settings** → **Webhooks**
|
|
2. Add webhook URL (Slack, Teams, or custom)
|
|
3. Select event types (anomaly detected, change detected)
|
|
4. Test webhook
|
|
|
|
### Create a Baseline
|
|
|
|
Creating a baseline helps detect anomalies by learning "normal" traffic.
|
|
|
|
1. Go to **Analysis** → **Create New**
|
|
2. Step 3: Select **Baseline Creation Mode**
|
|
3. Duration: 7 days recommended
|
|
4. Start analysis and let it run for a week
|
|
|
|
After 7 days:
|
|
- Go to **Data** → **Baseline Management**
|
|
- View your baseline
|
|
- Enable anomaly detection (compares current traffic to baseline)
|
|
|
|
## 📚 Learn More
|
|
|
|
- **User Manual**: [docs/user-manual.md](docs/user-manual.md)
|
|
- **Analysis Wizard Guide**: [docs/analysis-wizard.md](docs/analysis-wizard.md)
|
|
- **Dashboard Guide**: [docs/dashboards.md](docs/dashboards.md)
|
|
- **API Documentation**: http://localhost:8000/api/docs
|
|
|
|
## 🐛 Troubleshooting
|
|
|
|
**UI not loading?**
|
|
```bash
|
|
# Check frontend pod
|
|
kubectl logs -l app=frontend -n flowfish
|
|
```
|
|
|
|
**No data in Live Map?**
|
|
```bash
|
|
# Check if analysis is running
|
|
kubectl logs -l app=backend -n flowfish | grep "analysis"
|
|
|
|
# Check Inspektor Gadget
|
|
kubectl logs -l app=inspektor-gadget -n gadget
|
|
```
|
|
|
|
**Can't connect to cluster?**
|
|
- Verify API URL is correct
|
|
- Check kubeconfig/token has proper permissions
|
|
- Test with: `kubectl cluster-info`
|
|
|
|
## 💡 Tips
|
|
|
|
1. **Start Small**: Analyze 1-2 namespaces first, then expand
|
|
2. **Watch Live Map**: Keep it open to see real-time updates
|
|
3. **Check Anomalies Daily**: Review anomaly detection page regularly
|
|
4. **Export Data**: Backup your dependency maps regularly
|
|
5. **Use Filters**: Leverage namespace/type/risk filters for clarity
|
|
|
|
## 🎓 Training Resources
|
|
|
|
- **Video Tutorial**: [YouTube: Flowfish Getting Started](https://youtube.com/flowfish)
|
|
- **Webinar**: Join our weekly community webinar
|
|
- **Slack**: Ask questions in [#flowfish-support](https://flowfish-community.slack.com)
|
|
|
|
---
|
|
|
|
**Happy analyzing! 🐟🌊**
|
|
|
|
Need help? Open an issue: [GitHub Issues](https://github.com/yourusername/flowfish/issues)
|
|
|