Skip to content

Strapi

Deploy Strapi on Kubernetes as a headless CMS for APIs, websites, and custom admin experiences. The chart is designed for a prebuilt Strapi project image and supports SQLite, PostgreSQL, MySQL, persistent uploads, and scheduled backups.

Set ingress.ingressClassName to the controller available in your cluster, such as traefik, nginx, or another supported ingress class.

Key Features

  • Prebuilt project image — intended for your own Strapi application image
  • SQLite by default — simple initial deployment path
  • PostgreSQL subchart — bundled via HelmForge dependency
  • MySQL subchart — bundled via HelmForge dependency
  • External database — connect to existing PostgreSQL or MySQL
  • Application secrets — auto-generated app keys and token salts
  • Uploads persistence — PVC-backed media storage
  • Scheduled backups — SQLite archive or SQL dump workflows to S3

Installation

HTTPS repository:

helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install strapi helmforge/strapi

OCI registry:

helm install strapi oci://ghcr.io/helmforgedev/helm/strapi

Basic Example

image:
  repository: ghcr.io/example/my-strapi
  tag: '1.0.0'

persistence:
  enabled: true
  size: 5Gi

PostgreSQL Example

image:
  repository: ghcr.io/example/my-strapi
  tag: '1.0.0'

postgresql:
  enabled: true
  auth:
    database: strapi
    username: strapi
    password: 'strong-password'

ingress:
  enabled: true
  ingressClassName: traefik
  hosts:
    - host: cms.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: strapi-tls
      hosts:
        - cms.example.com

External Database Example

database:
  mode: external
  external:
    vendor: postgres
    host: db.example.com
    name: strapi
    username: strapi
    existingSecret: strapi-db-credentials

Key Values

KeyDefaultDescription
image.repositoryvshadbolt/strapiContainer image for the Strapi project
strapi.url""Public URL (auto-detected from ingress if empty)
database.modeautoDatabase mode (auto, sqlite, external, postgresql, mysql)
database.sqlite.directory/opt/app/.tmpSQLite directory
postgresql.enabledfalseDeploy PostgreSQL subchart
mysql.enabledfalseDeploy MySQL subchart
persistence.enabledtrueEnable uploads and SQLite persistence
ingress.enabledfalseEnable ingress
backup.enabledfalseEnable S3 backups
secrets.existingSecret""Use an existing secret for Strapi app secrets

More Information

See the source code and full values reference on GitHub.