BookStack Helm Chart

Deploys the BookStack wiki platform on Kubernetes with optional MariaDB and Redis sub-charts.


Versioning

The chart uses dual semantic versioning:

<chart semver>+<upstream BookStack semver>
# example: 1.2.3+25.2.3

This allows Helm to track compatibility changes independently from upstream BookStack releases.


Prerequisites

  • Helm 3
  • Kubernetes 1.24+
  • (Optional) External MariaDB 10.5+ and/or Redis 6+ instances if you disable the bundled subcharts

Quick start

helm repo add morlana https://charts.morlana.net
helm repo update

helm install bookstack morlana/bookstack \
  --namespace bookstack --create-namespace

The first run generates a Laravel APP_KEY secret. The deployment automatically restarts once the key is present.


Upgrading

helm upgrade bookstack morlana/bookstack -n bookstack --reuse-values

Helm recognises new chart versions that follow the x.y.z+<bookstack> scheme. Check the upstream projects release notes as well as the charts CHANGELOG.md before upgrading across major versions.


Uninstalling

helm uninstall bookstack -n bookstack

PersistentVolumeClaims and One-Time generated secrets are not removed automatically.


Configuration (excerpt)

Key Description Default
bookstack.image.repository Container image repository solidnerd
bookstack.image.name Image name bookstack
bookstack.image.tag Image tag (defaults to upstream version when empty) ""
bookstack.replicaCount Number of pods 1
bookstack.config.app.url Public URL users will access https://example.com
bookstack.config.app.key Laravel APP_KEY (autogenerated if empty) ""
bookstack.mail.host SMTP host (set to enable email) ""
bookstack.mail.port SMTP port 1025
bookstack.persistence.enabled Persist uploads and storage true
bookstack.persistence.size PVC size 10Gi
service.type Kubernetes Service type ClusterIP
ingress.enabled Create an Ingress false
db.enabled Deploy bundled MariaDB true
redis.enabled Deploy bundled Redis true

Override values with --set key=value or put them in my-values.yaml and pass -f.


Persistence

A single ReadWriteMany PVC is created by default so all replicas share the same data. Customise size, StorageClass or accessMode via bookstack.persistence.*.


Ingress example

ingress:
  enabled: true
  class: nginx
  hostname: wiki.example.com
  tls:
    - hosts: [wiki.example.com]
      secretName: wiki-tls

Using external services

Disable the subcharts and point BookStack at existing database/redis servers:

db:
  enabled: false

bookstack:
  externalDatabase:
    host: mariadb.example.com
    database: bookstack
    username: bookstack
    password: supersecret

redis:
  enabled: false

bookstack:
  externalRedis:
    servers: redis://:password@redis.example.com:6379/0

Backup & restore

  • Database: use mysqldump / mysql against the MariaDB service (or your external DB).
  • Application data: back up the BookStack PVC with your preferred tool (Velero, restic, etc.).

Contributing

Bug reports and pull requests are welcome in the chart repository. For issues specific to BookStack itself, please use the upstream projects tracker.

Happy documenting! 📚

Description
This is an unofficial Helm Chart for bookstackapp.com
Readme MIT 105 KiB
Languages
Python 53%
Smarty 47%