Skip to content

๐Ÿ“ฆ Installation Guide

Snapr is installed as a Helm chart inside your own Kubernetes cluster. You begin by setting up your custom configuration in the configuration.yaml file. Once deployed, Snapr runs entirely within your infrastructure, and you can connect your GitHub repositories via a webhook.

This setup is simple, cloud-native, and fully transparent. Since Snapr operates in your environment, you retain full control over your data and security boundaries โ€” nothing ever leaves your cluster.


โœ… Prerequisites

Before installing Snapr, ensure you have the following prerequisites:

  • A running Kubernetes cluster Snapr is designed to run as a Helm chart inside your own Kubernetes environment. You can use any CNCF-compliant distribution (e.g., k0s, k3s, GKE, EKS, AKS...). The cluster should be reachable and have enough resources to run workload required for Snapr.
  • Helm installed (v3.8 or later) Helm is used to install and manage Snapr within your cluster. Make sure it's properly installed and configured to access your Kubernetes context:
helm version
kubectl config current-context
  • A Github repository to collaborate in Snapr integrates with GitHub to bring conversational collaboration into your development workflow. Youโ€™ll need a repository where Snapr can read/write issues, pull requests, and comment threads. Organization or personal repositories are both supported.
  • A valid Snapr license Snapr requires a license key for activation. If you havenโ€™t received one yet, contact the Snapr team or your sales representative to obtain a valid license.
  • An OpenAI API key Snapr uses OpenAI models under the hood to power natural language understanding and generation. Youโ€™ll need an active OpenAI API key with sufficient quota to enable AI-assisted collaboration.

๐Ÿ” Authorize Snapr to access and interact with your GitHub repositories via a GitHub App

Using a GitHub App allows Snapr to interact with your repositories in a secure, controlled, and automation-friendly way. Unlike personal access tokens, GitHub Apps offer fine-grained permission scopes, improved auditability, and are the recommended method for integrating third-party tools.

Snapr uses the GitHub App to perform tasks such as cloning repositories, creating pull requests, and optionally interacting with issues โ€” all within the boundaries you define.

To create your GitHub App:

  1. Navigate to https://github.com/settings/apps (or go to your organization โ†’ Settings โ†’ Developer settings)
  2. Click "New GitHub App".
  3. Fill in the required fields:
    • App name: e.g. Snapr Agent (or a name of your choice)
    • Homepage URL: https://snapr.dev
  4. Under Repository permissions, configure the following:
    • Contents: Read and write (required for cloning, reading, and committing changes)
    • Issues: Read-only (or Read and write if Snapr will modify issues)
    • Pull requests: Read and write (required for creating and updating PRs)
  5. Click "Create GitHub App".
  6. After the app is created:
    • Go to the App settings page
    • Click โ€œGenerate a private keyโ€ and securely download the .pem file
  7. Copy the following values for later configuration in Snapr:
    • App ID
    • Client ID

โš™๏ธ Configuring and Deploying the Snapr Helm Chart

Snapr is deployed as a Helm chart inside your Kubernetes cluster. Before installing it, you need to prepare a configuration file that defines how Snapr will operate in your environment โ€” including access credentials, GitHub integration, and license information.

๐Ÿ“ Step 1: Create your configuration.yaml

Start by creating a configuration.yaml file. This file defines key settings such as:

  • The Snapr license key
  • The GitHub App credentials (App ID, Client ID, and private key)
  • The OpenAI API key
  • Optional behavior settings (e.g. namespaces, webhook secret, resource limits)

Hereโ€™s an example of a minimal configuration file:

license:
  key: <your-snapr-license-key>

github:
  appId: <your-github-app-id>
  webhookSecretKey: <your-github-client-id>
  privateKey: |
    -----BEGIN RSA PRIVATE KEY-----
    ...
    -----END RSA PRIVATE KEY-----

agent:
  model: gpt-4o # default model ID used.
  openai:
    apiKey: <your-openai-api-key>

โš ๏ธ Make sure this file is not committed to a public repository, as it contains sensitive credentials.

๐Ÿš€ Step 2: Install the chart

Once your configuration.yaml is ready, install Snapr using Helm:

helm install snapr oci://ghcr.io/snaprai/snapr --version 0.1.0 -f configuration.yaml

You can also pass additional values with --set, or override specific settings in a custom values file.

๐Ÿ” Step 3: Verify the installation

Check that the Snapr components are running:

kubectl get secrets,configmaps,pods -n snapr

It creates the required Secrets using your GitHub App credentials, and generates ConfigMaps to store the agent's runtime configuration.

๐Ÿ”— Configure the GitHub Webhook

To enable Snapr to receive repository events and trigger actions, you need to configure a webhook in your GitHub repository.

This webhook will send events to the Snapr API, which is exposed as part of the deployment in your Kubernetes cluster.

In your GitHub repository:

  1. Navigate to Settings > Webhooks
  2. Click โ€œAdd webhookโ€
  3. Set the Payload URL to the Snapr API endpoint:

    This URL connects to the Snapr API deployed inside your cluster, allowing it to receive and process GitHub events.

  4. Set the Content type to application/json
  5. Under โ€œWhich events would you like to trigger this webhook?โ€, choose:
  6. Let me select individual events
  7. Enable at least:
    • Push
    • Pull requests
  8. Click โ€œAdd webhookโ€ to save

Snapr will now listen for real-time activity from your GitHub repository, such as pushes and pull requests. Incoming events are processed through Snaprโ€™s internal API, enabling collaboration and automation features to be triggered directly from your development workflow.