diff --git a/README.md b/README.md index 8e30f23..0fc8362 100644 --- a/README.md +++ b/README.md @@ -1,236 +1,196 @@ -# Vespper - open-source AI on-call developer +# Vespper - Open-source AI On-call Developer 🚀
- - Vespper-logo - + + Vespper-logo +

-
- Docs · - Demo · - Report Bug · - Feature Request · - Blog · - Slack -
+ Docs · + Demo · + Report Bug · + Feature Request · + Blog · + Slack
+
-
- - -Apache 2.0 License - -main-workflow - - -code style: prettier - - -slack-logo - + +
+ + + + + + + + Apache 2.0 License + + + CI Status + + + Prettier code style + + + Join Slack +
-## Overview 💫 +--- + +## Overview 💡 -Vespper is an AI-powered on-call engineer. It can automatically jump into incidents & alerts with you, and provide you useful & contextual insights and RCA in real time. +**Vespper** is an AI-powered on-call engineer designed to assist developers in real-time with incident detection, root cause analysis (RCA), and insightful support during outages and alerts. -## Why ❓ +By leveraging the power of AI and seamless integrations with popular observability tools, Vespper helps developers solve problems faster, reduce stress, and make on-call duty easier. -Most people don't like to do on-call shifts. It requires engineers to be swift and solve problems quickly. Moreover, it takes time to reach to the root cause of the problem. That's why we developed Vespper. We believe Gen AI can help on-call developers solve issues faster. +--- -## Table of Contents +## Why Vespper? 🤔 -- [Overview](#overview-) -- [Why](#why-) -- [Key Features](#key-features-) -- [Demo](#demo-) -- [Getting started](#getting-started-) - - [Prerequisites](#prerequisites-) - - [Quick Installation](#quick-installation-) - - [Updating Vespper](#updating-vespper-️-) - - [Deployment](#deployment-) - - [Visualize Knowledge Base](#visualize-knowledge-base-) -- [Support and feedback](#support-and-feedback-️) -- [Contributing to Vespper](#contributing-to-vespper-️) -- [Troubleshooting](#troubleshooting-️) -- [Telemetry](#telemetry-) -- [License](#license-) -- [Learn more](#learn-more-) -- [Contributors](#contributors-) +On-call shifts can be stressful and require swift problem-solving. Traditional troubleshooting often takes time, especially when tracking down the root cause of incidents. **Vespper** was built to simplify this process by: -## Key features 🎯 +- **Automating root cause analysis (RCA)** and offering instant, contextual insights. +- Acting as a **24/7 on-call engineer** who jumps in when needed, keeping your team supported at all times. +- Integrating with popular incident management tools, so you can continue using your existing workflows. -- **Automatic RCA**: Vespper automatically listens to production incidents/alerts and automatically investigates them for you. -- **Slack integration**: Vespper lives inside your Slack. Simply connect it and enjoy an on-call engineer that never sleeps. -- **Integrations**: Vespper integrates with popular observability/incident management tools such as Datadog, Coralogix, Opsgenie and Pagerduty. It also integrates to other tools as GitHub, Notion, Jira and Confluence to gain insights on incidents. -- **Intuitive UX**: Vespper offers a familiar experience. You can talk to it and ask follow-up questions. -- **Secure**: Self-host Vespper and own your data. Always. -- **Open Source**: We love open-source. Self-host Vespper and use it for free. +## Key Features ✨ -## Demo 🎥 +- **Automatic Root Cause Analysis (RCA)**: Vespper listens to incidents in real time and performs investigations autonomously. +- **Slack Integration**: Available inside Slack for quick interaction, making the troubleshooting process conversational and simple. +- **Seamless Integrations**: Works with tools like Datadog, Opsgenie, PagerDuty, GitHub, Jira, Notion, and Confluence to gather insights. +- **Developer-friendly UX**: Engages users through intuitive interfaces, enabling engineers to ask follow-up questions and receive real-time feedback. +- **Self-hosting & Security**: You can self-host Vespper, ensuring full control over your data and system. +- **Open-source**: Transparent and community-driven, allowing you to use Vespper freely and contribute to its development. -Checkout our [demo video](https://www.loom.com/share/85dc64d021cc40c4b1064389c20782a6?sid=1178d76f-5036-4fb2-887b-63b7f4f9aaac) to see Vespper in action. +--- -## Getting started 🚀 +## Getting Started 🚀 -In order to run Vespper, you need to clone the repo & run the app using Docker Compose. +Getting Vespper up and running is easy! Below are the steps to get started. -### Prerequisites 📜 +### Prerequisites 📋 -Ensure you have the following installed: +Make sure the following are installed on your machine: -- **Docker & Docker Compose** - The app works with Docker containers. To run it, you need to have [Docker Desktop](https://docs.docker.com/desktop/), which comes with Docker CLI, Docker Engine and Docker Compose. - +- **Docker & Docker Compose**: Install [Docker Desktop](https://docs.docker.com/desktop/) (includes Docker CLI, Docker Engine, and Docker Compose). -### Quick installation 🏎️ +### Installation Steps 🛠️ -You can find the installation video [here](https://www.loom.com/share/1f562cb067364517b1c1e7bf7f789db7?sid=8ea35183-893e-4e74-b450-c3e2e1cc1f11). +Follow the instructions below or check our [installation video](https://www.loom.com/share/1f562cb067364517b1c1e7bf7f789db7?sid=8ea35183-893e-4e74-b450-c3e2e1cc1f11): -1. Clone the repository: +1. **Clone the repository**: - ```bash - git clone git@github.com:vespper/vespper.git && cd vespper - ``` + ```bash + git clone git@github.com:vespper/vespper.git && cd vespper + ``` -2. Configure LiteLLM Proxy Server: +2. **Configure LiteLLM Proxy Server**: - We use [LiteLLM Proxy Server](https://docs.litellm.ai/docs/simple_proxy) to interact with 100+ of LLMs in a unified interface (OpenAI interface). + Vespper uses [LiteLLM Proxy Server](https://docs.litellm.ai/docs/simple_proxy) to interact with LLMs. - 1. Copy the example files: + - Copy the example config files: ```bash cp config/litellm/.env.example config/litellm/.env cp config/litellm/config.example.yaml config/litellm/config.yaml ``` - 2. Define your **OpenAI key** and place it inside `config/litellm/.env` as `OPENAI_API_KEY`. You can get your API key [here](https://platform.openai.com/api-keys). Rest assured, you won't be charged unless you use the API. For more details on pricing, check [here](https://openai.com/pricing). - -3. Copy the `.env.example` file: - - ```bash - cp .env.example .env - ``` - -4. Open the `.env` file in your favorite editor (vim, vscode, emacs, etc): - - ```bash - vim .env # or emacs or vscode or nano - ``` - -5. Update these variables: - - - `SLACK_BOT_TOKEN`, `SLACK_APP_TOKEN` and `SLACK_SIGNING_SECRET` - These variables are needed in order to talk to Vespper on Slack. Please follow [this guide](https://github.com/vespperhq/vespper/tree/main/config/slack/README.md) to create a new Slack app in your organization. - - - (Optional) `SMTP_CONNECTION_URL` - This variable is needed in order to invite new members to your Vespper organization via email and allow them to use the bot. It's not mandatory if you just want to test Vespper and play with it. If you do want to send invites to your team members, you can use a service like SendGrid/Mailgun. Should follow this pattern: `smtp://username:password@domain:port`. + - Add your **OpenAI API key** in `config/litellm/.env` as `OPENAI_API_KEY`. You can generate a key [here](https://platform.openai.com/api-keys). -6. Launch the project: - ```bash - docker compose up -d - ``` +3. **Configure environment variables**: -That's it. You should be able to visit Vespper's dashboard in http://localhost:5173. -Simply create a user **(with the same e-mail as the one in your Slack user)** and start to configure your organization. If something does not work for you, please checkout our [troubleshooting](#troubleshooting-️) or reach out to us via our [support channels](#support-and-feedback-️). + ```bash + cp .env.example .env + ``` -The next steps are to configure your organization a bit more (connect incident management tools, build a knowledge base, etc). Head over to the [connect & configure](https://docs.vespper.com/Getting%20started/Configure%20&%20connect) section in our docs for more information 💫 + Open `.env` with a text editor and update the following: -#### Using DockerHub images + - `SLACK_BOT_TOKEN`, `SLACK_APP_TOKEN`, `SLACK_SIGNING_SECRET` for Slack integration (check [this guide](https://github.com/vespperhq/vespper/tree/main/config/slack/README.md) to create a Slack app). + - Optionally, set up `SMTP_CONNECTION_URL` for email invites (using services like SendGrid/Mailgun). -If you want, you can pull our [Docker images](https://hub.docker.com/u/vespper) from DockerHub instead of cloning the repo & building from scratch. +4. **Launch the app**: -In order to do that, follow these steps: + ```bash + docker-compose up -d + ``` -1. Download configuration files: +Visit Vespper's dashboard at `http://localhost:5173` to complete setup. Create a user with the same email as your Slack user to get started. - ```bash - curl https://raw.githubusercontent.com/vespper/vespper/main/tools/scripts/download_env_files.sh | sh - ``` +For more details, visit our [configuration guide](https://docs.vespper.com/Getting%20started/Configure%20&%20connect). -2. Follow steps 2 and 5 above to configure LiteLLM Proxy and your `.env` file respectively. Namely, you'd need to configure your OpenAI key at `config/litellm/.env` and configure your Slack credentials in the root `.env`. +--- -3. Spin up the environment using docker compose: - ```bash - curl https://raw.githubusercontent.com/vespper/vespper/main/tools/scripts/start.sh | sh - ``` +## Updating Vespper 🔄 -That's it 💫 You should be able to visit Vespper's dashboard in http://localhost:5173. +Keep your instance up to date by pulling the latest changes and rebuilding: -### Updating Vespper 🧙‍♂️ - -1. Pull the latest changes: - - ```bash - git pull - ``` +```bash +git pull +docker-compose up --build -d +``` -2. Rebuild images: +--- - ```bash - docker-compose up --build -d - ``` +## Deploying Vespper 🌐 -### Deployment ☁️ +You can deploy Vespper on the cloud. Follow the deployment guides available in our [examples](https://github.com/vespperhq/vespper/tree/main/examples) section. -Visit our [example guides](https://github.com/vespperhq/vespper/tree/main/examples) in order to deploy Vespper to your cloud. +--- -### Visualize Knowledge Base 🗺️ +## Visualize Knowledge Base 📊 -We use ChromaDB as our vector DB. We also use [vector admin](https://vectoradmin.com/) in order to see the ingested documents. To use vector admin, simply run this command: +Vespper uses **ChromaDB** for storing ingested documents and **VectorAdmin** to visualize them. To run VectorAdmin: ```bash -docker compose up vector-admin -d +docker-compose up vector-admin -d ``` -This command starts vector-admin at port 3001. Head over to http://localhost:3001 and configure your local ChromaDB. **Note:** Since vector-admin runs inside a docker container, in the "host" field make sure to insert `http://host.docker.internal:8000` instead of `http://localhost:8000`. This is because "localhost" doesn't refer to the host inside the container itself. - -Moreover, in the "API Header & Key", you'd need to put "X-Chroma-Token" as the header and the value you have inside .env `CHROMA_SERVER_AUTHN_CREDENTIALS` as the value. +Access it at `http://localhost:3001` and configure it to connect to ChromaDB. -To learn how to use VectorAdmin, visit the [docs](https://github.com/Mintplex-Labs/vector-admin). +--- -## Support and feedback 👷‍♀️ +## Troubleshooting & Support 🛠️ -In order of preference the best way to communicate with us: +If you run into issues: -- **GitHub Discussions**: Contribute ideas, support requests and report bugs (preferred as there is a static & permanent for other community members). -- **Slack**: community support. Click [here](https://vespper.com/#community) to join. -- **Privately**: contact at support@vespper.com +- Check our [troubleshooting guide](https://github.com/vespperhq/vespper/tree/main/TROUBLESHOOTING.md). +- Reach out via [GitHub Discussions](https://github.com/vespperhq/vespper/discussions). +- Join our community on [Slack](https://join.slack.com/t/vesppercommunity/signup). -## Contributing to Vespper ⛑️ +--- -If you're interested in contributing to Vespper, checkout our [`CONTRIBUTING.md`](https://github.com/vespperhq/vespper/blob/main/CONTRIBUTING.md) file 💫 🧙‍♂️ +## Telemetry 📊 -## Troubleshooting ⚒️ +By default, Vespper sends basic telemetry via PostHog to help us improve the tool. You can disable telemetry by setting `TELEMETRY_ENABLED=false` in your `.env` file. -If you encounter any problems/errors/issues with Vespper, checkout our [troubleshooting guide](https://github.com/vespperhq/vespper/tree/main/TROUBLESHOOTING.md). We try to update it regularly, and fix some of the urgent problems there as soon as possible. +Learn more about our data policies in [telemetry docs](https://github.com/vespperhq/vespper/blob/main/services/api/src/telemetry/listener.ts). -Moreover, feel free to reach out to us at our [support channels](#support-and-feedback-️). +--- -## Telemetry 🔢 +## License 📜 -By default, Vespper automatically sends basic usage statistics from self-hosted instances to our server via PostHog. +Vespper is licensed under Apache 2.0. Check out the [LICENSE](https://github.com/vespperhq/vespper/tree/main/LICENSE.md) for more details. -This allows us to: +--- -- Understand how Vespper is used so we can improve it. -- Track overall usage for internal purposes and external reporting, such as for fundraising. +## Contributing 🤝 -Rest assured, the data collected is not shared with third parties and does not include any sensitive information. We aim to be transparent, and you can review the specific data we collect [here](https://github.com/vespperhq/vespper/blob/main/services/api/src/telemetry/listener.ts). +Want to contribute? Check out our [CONTRIBUTING.md](https://github.com/vespperhq/vespper/blob/main/CONTRIBUTING.md) guide for more info on how you can help make Vespper even better! -If you prefer not to participate, you can easily opt-out by setting `TELEMETRY_ENABLED=false` inside your `.env`. +--- -## License 📃 - -This project is licensed under the Apache 2.0 license - see the [LICENSE](https://github.com/vespperhq/vespper/tree/main/LICENSE.md) file for details - -## Learn more 🔍 +## Contributors ✨ -Check out the official website at https://vespper.com for more information. +Built with ❤️ by: -## Contributors ✨ +- **Dudu** ([GitHub](https://github.com/david1542), [Twitter](https://twitter.com/David)) -Built with ❤️ by Dudu & Topaz +Lasry17164)) +- **Topaz** ([GitHub](https://github.com/topaztee), [Twitter](https://twitter.com/topaz_tee)) -Dudu: [Github](https://github.com/david1542), [Twitter](https://twitter.com/DavidLasry17164) +--- -Topaz: [Github](https://github.com/topaztee), [Twitter](https://twitter.com/topaz_tee) +For more information, visit [our website](https://vespper.com).