FinDash is an open-source FinOps dashboard designed to help organizations monitor, analyze, and optimize their cloud spending across multiple vendors.
- 📊 Budget Tracking: Monitor your cloud spending across multiple vendors
- 📈 Cost Forecasting: Predict future cloud costs using common forecasting techniques
- 🤖 AI-Powered Insights (Coming Soon): AI-driven forecasts and optimization suggestions
- ✅ Datadog: Full support for cost metrics and forecasting
- 🔜 AWS: Full support for cost metrics and forecasting
- Node.js (v14 or higher)
- npm or yarn
- Python 3.8+
- uv (Python package installer)
- Kubernetes cluster
- Helm v3
- Clone the repository:
git clone https://github.com/yourusername/findash.git
cd findash
- Install frontend dependencies:
cd dashboard
npm install
- Install backend dependencies:
cd api
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create a new virtual environment and install dependencies
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -r requirements.txt
- Add the Bitnami repository for PostgreSQL dependency:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
- Create a values file (
values.yaml
):
secrets:
findashSecrets:
auth0-domain: "your-auth0-domain"
auth0-client-id: "your-auth0-client-id"
datadog-api-key: "your-datadog-api-key"
datadog-app-key: "your-datadog-app-key"
ingress:
enabled: true
className: nginx # Adjust based on your cluster
hosts:
- host: findash.your-domain.com
paths:
- path: /api
pathType: Prefix
service: findash-api
port: 8000
- path: /
pathType: Prefix
service: findash-dashboard
port: 3000
- Install the chart:
# Update dependencies
helm dependency update ./helm/findash/findash
# Install the chart
helm install findash ./helm/findash/findash -f values.yaml -n your-namespace
- Verify the installation:
kubectl get pods -n your-namespace
kubectl get ingress -n your-namespace
- Upgrading:
helm upgrade findash ./helm/findash/findash -f values.yaml -n your-namespace
- Uninstalling:
helm uninstall findash -n your-namespace
The following table lists the configurable parameters for the Helm chart:
Parameter | Description | Default |
---|---|---|
global.imageRegistry |
Global container registry | ghcr.io |
api.replicaCount |
Number of API replicas | 1 |
api.resources |
API resource requests/limits | See values.yaml |
dashboard.replicaCount |
Number of dashboard replicas | 1 |
dashboard.resources |
Dashboard resource requests/limits | See values.yaml |
postgresql.enabled |
Enable PostgreSQL deployment | true |
ingress.enabled |
Enable ingress creation | false |
secrets.create |
Create Kubernetes secrets | true |
For a complete list of parameters, see the values.yaml file.
- Set up environment variables:
# In /api/.env
DATADOG_API_KEY=your_datadog_api_key
DATADOG_APP_KEY=your_datadog_app_key
# In /dashboard/.env
REACT_APP_BACKEND_URL=http://localhost:8000
- Start the development servers:
# Start backend (from /api directory)
uvicorn app.main:app --reload
# Start frontend (from /dashboard directory)
npm start
We welcome contributions! Please see our Contributing Guide for details on how to:
- Set up your development environment
- Submit pull requests
- Report issues
- Propose new features
FinDash consists of two main components:
-
Frontend (
/dashboard
):- React with TypeScript
- TailwindCSS for styling
- Auth0 for authentication
- ApexCharts for data visualization
-
Backend (
/api
):- FastAPI (Python)
- Integration with cloud vendor APIs
- Cost analysis and forecasting algorithms
- uv for dependency management
See the LICENSE file for details.
If you need help or have questions:
- Open an issue
- Join our community discussions
- Check out our documentation
- Datadog Integration
- AWS Integration
- GCP Integration
- Azure Integration
- AI-powered cost optimization suggestions
- Custom alerting rules
- Budget management
- Team collaboration features