Self-hosting

Scorable Installation Guide

This document provides step-by-step instructions to deploy Scorable using Helm on your Kubernetes cluster.

Self-hosting is available on the Scale plan. Contact Scorable at [email protected]


Prerequisites

Before you begin, ensure the following components are installed and configured in your environment.

Required Components

  • Kubernetes Cluster: A running Kubernetes cluster (v1.32 or higher recommended).

  • Helm 3/4: Ensure you have Helm installed.

  • PostgreSQL Database: An accessible PostgreSQL instance within your cluster or network.

  • Redis Server: An accessible Redis instance within your cluster or network.

Optional Components


Installation Steps

1. Configure Values

Create a my-values.yaml file based on your environment. Refer to the Values File Example section below.

2. Install the Chart

Install or upgrade the Scorable chart using Helm:


Configuration Details

Values File Example

Below is an example my-values.yaml file to guide your configuration:

Notes:

  • Storage: Configure either Azure Blob Storage or AWS S3 based on your preference.

  • Secrets: If useSealedSecrets is true, ensure your secrets are encrypted using the Sealed Secrets Controller.

  • Domain and Hosts: Update the domain and hosts sections to match your environment.

  • Ingress: If using an NGINX ingress controller + cert-manager, set enabled: true under the ingress sections.

Database

Create a database for the application

Secrets Management

If useSealedSecrets is set to true, you need to encrypt your secrets using kubeseal. Install the Sealed Secrets CLI:

Encrypt your secrets:

Replace your-secret-value with your actual secret and follow the prompts. Repeat for each secret.

Alternatively, if you prefer to manage secrets via Kubernetes secrets, set useSealedSecrets to false and create a Kubernetes secret:

Then, reference this secret in your my-values.yaml:


Accessing the Application

Using Ingress

It is recommended to deploy an ingress controller to access the application. You can use any ingress controller, such as Traefik

The example setup works with an NGINX ingress. You can enable it by enabling the ingress in the api and frontend sections of your values file.

In that setup, the domain in your values file is used. So for example: domain: "mydomain.com" Would make the application available in mydomain.com and api.mydomain.com

Alternatively, you can configure a custom ingress. In order for the application to work, you should enable access to the api and frontend k8s services in the namespace.

Using Port Forwarding

Alternatively, you can use kubectl port-forward to access the services locally:

Open your browser and navigate to http://localhost:3000 to access the web UI.


Monitoring and Logging

Sentry Integration

Scorable supports integration with Sentry for error tracking and monitoring.

Prometheus Metrics

The application exposes metrics at /metrics endpoints, which can be scraped by Prometheus. To set up Prometheus monitoring:

  1. Deploy Prometheus in your cluster. You can use the Prometheus Helm Chart.

  2. Configure Prometheus to scrape the metrics endpoints of Scorable services.

For detailed assistance, please get in touch with our support team.


Updates

Scorable notifies customer contact persons when new versions of the Helm chart are available


Support

If you encounter any issues or have questions, please reach out:


Note: Always ensure that your Kubernetes cluster and Helm are up to date to avoid compatibility issues. Regularly back up your configurations and data.

Last updated