3.9 KiB
⚠️ Repo Archive Notice
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
HackMD is a realtime, multiplatform collaborative markdown note editor.
DEPRECATION NOTICE
This chart is deprecated and no longer supported.
Introduction
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.
Prerequisites
- Kubernetes 1.8+
- PV provisioner support in the underlying infrastructure
Install
$ git clone https://github.com/hackmdio/docker-hackmd.git
$ helm install stable/hackmd
Configuration
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 |
Use persistent volume for image uploads
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
Use behind a TLS reverse proxy
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"