Skip to content

Latest commit

 

History

History
169 lines (124 loc) · 4.94 KB

README.md

File metadata and controls

169 lines (124 loc) · 4.94 KB

Saleor Apps Helm Chart

This Helm chart deploys the official Saleor Apps to a Kubernetes cluster. It supports multiple apps that can be enabled or disabled as needed, with a shared Redis instance for persistence (APL).

Available Apps

  • CRM Klaviyo: Integration with Klaviyo CRM
  • SMTP: Email sending functionality
  • Products Feed: Product feed generation and management
  • Search: Provides search functionality
  • Avatax: Tax calculations via Avatax
  • CMS v2: Content Management System

Prerequisites

  • Kubernetes 1.19+
  • Helm 3.0+
  • Ingress controller (e.g., nginx-ingress)

Dependencies

  • Redis (Bitnami chart)

Installation

  1. Add the Bitnami repository for Redis dependency:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
  1. Create a values file (e.g., my-values.yaml) to configure your deployment:
global:
  domain: "your-domain.com"
  secretKey: "your-secret-key"  # Required for app security

redis:
  auth:
    password: "your-redis-password"  # Set a secure password

# Enable the apps you need
apps:
  crm-klaviyo:
    enabled: true
    hostname: crm-klaviyo.your-domain.com
  emails-and-messages:
    enabled: true
    hostname: emails.your-domain.com
  # ... configure other apps as needed
  1. Install the chart:
helm install saleor-apps . -f my-values.yaml

Configuration

Global Parameters

Parameter Description Default
global.domain Base domain for all apps apps.example.com
global.secretKey Secret key for app security ""

Redis Configuration

Parameter Description Default
redis.enabled Enable Redis deployment true
redis.auth.enabled Enable Redis authentication true
redis.auth.password Redis password ""

Common App Configuration

Parameter Description Default
common.image.registry Docker registry ghcr.io
common.image.repository Docker repository trieb-work/saleor-apps-docker
common.image.tag Docker image tag latest
common.image.pullPolicy Image pull policy IfNotPresent

App-Specific Configuration

Each app supports the following configuration parameters:

Parameter Description Default
apps.<app-name>.enabled Enable the app false
apps.<app-name>.hostname Hostname for the app <app>.apps.example.com
apps.<app-name>.port Container port 3000
apps.<app-name>.ingress.enabled Enable ingress true
apps.<app-name>.ingress.annotations Ingress annotations {}

Marketplace Service

The chart includes a marketplace service that provides a custom marketplace JSON endpoint for your Saleor apps. This allows you to have a self-hosted marketplace that lists all your enabled Saleor apps with their correct manifest URLs.

Configuration

Enable and configure the marketplace in your values.yaml:

marketplace:
  # Enable or disable the marketplace service
  enabled: true
  # Your marketplace hostname
  hostname: marketplace.apps.example.com
  ingress:
    enabled: true
    annotations:
      cert-manager.io/cluster-issuer: letsencrypt-prod  # Optional: for automatic SSL
    tls:
      enabled: true
      secretName: ""  # Leave empty to use default name: <release>-marketplace-tls

Usage with Saleor Dashboard

To use your custom marketplace with Saleor Dashboard, set the APPS_MARKETPLACE_API_URL environment variable in your dashboard deployment:

env:
  - name: APPS_MARKETPLACE_API_URL
    value: "https://marketplace.apps.example.com/marketplace.json"

This will allow you to install your apps directly from the Saleor Dashboard with one click. The marketplace JSON will only include apps that are enabled in your saleor-apps deployment.

Marketplace JSON Format

The marketplace service generates a JSON file that follows the official Saleor marketplace format. For each enabled app, it includes:

  • App name and description
  • Logo and branding information
  • Integration details
  • Manifest URL pointing to your deployed app instance
  • Standard privacy and support URLs

The manifest URLs are automatically set to match your app hostnames as configured in the chart.

Usage

  1. After installation, each enabled app will be available at its configured hostname.
  2. All apps share the same Redis instance for persistence.
  3. Configure your DNS to point the hostnames to your ingress controller.

Upgrading

To upgrade the release:

helm upgrade saleor-apps . -f my-values.yaml

Uninstallation

To uninstall the release:

helm uninstall saleor-apps

Notes

  • The Redis password must be set before installation
  • Each app requires its own hostname for ingress
  • The secret key should be securely generated and kept private
  • All apps use port 3000 by default inside their containers