stable/hackmd/README.md
As of Nov 13, 2020, charts in this repo will no longer be updated. For more information, see the Helm Charts Deprecation and Archive Notice, and Update.
HackMD is a realtime, multiplatform collaborative markdown note editor.
This chart is deprecated and no longer supported.
This chart bootstraps a HackMD deployment on a Kubernetes cluster using the Helm package manager.
It also packages the PostgreSQL which is required for bootstrapping a PostgreSQL deployment for the database requirements of the HackMD application.
$ git clone https://github.com/hackmdio/docker-hackmd.git
$ helm install stable/hackmd
The following configurations may be set. It is recommended to use values.yaml for overwriting the hackmd config.
| Parameter | Description | Default |
|---|---|---|
deploymentStrategy | Deployment strategy. | RollingUpdate |
replicaCount | How many replicas to run. | 1 |
image.repository | Name of the image to run, without the tag. | hackmdio/hackmd |
image.tag | The image tag to use. | 1.3.0-alpine |
image.pullPolicy | The kubernetes image pull policy. | IfNotPresent |
service.name | The kubernetes service name to use. | hackmd |
service.type | The kubernetes service type to use. | ClusterIP |
service.port | Service port. | 3000 |
ingress.enabled | If true, Ingress will be created | false |
ingress.annotations | Ingress annotations | [] |
ingress.hosts | Ingress hostnames | [] |
ingress.tls | Ingress TLS configuration (YAML) | [] |
resources | Resource requests and limits | {} |
persistence.enabled | If true, Persistent Volume Claim will be created | true |
persistence.accessModes | Persistent Volume access modes | [ReadWriteOnce] |
persistence.annotations | Persistent Volume annotations | {} |
persistence.existingClaim | Persistent Volume existing claim name | "" |
persistence.size | Persistent Volume size | 2Gi |
persistence.storageClass | Persistent Volume Storage Class | unset |
extraVars | Hackmd's extra environment variables | [] |
podAnnotations | Pod annotations | {} |
sessionSecret | Hackmd's session secret | "" (Randomly generated) |
postgresql.install | Enable PostgreSQL as a chart dependency | true |
postgresql.imageTag | The image tag for PostgreSQL | 9.6.2 |
postgresql.postgresUser | PostgreSQL User to create | hackmd |
postgresql.postgresHost | PostgreSQL host (if postgresql.install == false) | nil |
postgresql.postgresPassword | PostgreSQL Password for the new user | random 10 characters |
postgresql.postgresDatabase | PostgreSQL Database to create | hackmd |
If you want to use a Kubernetes Persistent volume for image upload (enabled by default), you can encourter a problem where your volume doesn't have proper ownershuip, so HackMD won't be able to write into it. You can use set the HMD_IMAGE_UPLOAD_TYPE to filesystem in your values.yaml to have the Docker entrypoint change volume's ownership:
extraVars:
- name: HMD_IMAGE_UPLOAD_TYPE
value: filesystem
If you use HackMD behind a reverse proxy that does TLS decryption and forwards traffic in plain HTTP, you have to enable the following variables in your values.yaml:
extraVars:
- name: CMD_DOMAIN
value: change.this.to.your.own.fqdn
- name: CMD_PROTOCOL_USESSL
value: "true"
- name: CMD_URL_ADDPORT
value: "false"