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
| Key | Default | Description |
|---|---|---|
image.repository | vshadbolt/strapi | Container image for the Strapi project |
strapi.url | "" | Public URL (auto-detected from ingress if empty) |
database.mode | auto | Database mode (auto, sqlite, external, postgresql, mysql) |
database.sqlite.directory | /opt/app/.tmp | SQLite directory |
postgresql.enabled | false | Deploy PostgreSQL subchart |
mysql.enabled | false | Deploy MySQL subchart |
persistence.enabled | true | Enable uploads and SQLite persistence |
ingress.enabled | false | Enable ingress |
backup.enabled | false | Enable S3 backups |
secrets.existingSecret | "" | Use an existing secret for Strapi app secrets |
More Information
See the source code and full values reference on GitHub.