Resources
HedgeDoc
-
db
postgres
Ready
-
app
quay.io/hedgedoc/hedgedoc:1.10.3
Running
-
ingress
notes.example.com
Live
Parameters
Deploy HedgeDoc
App Name required
hedgedoc
Domain required
notes.example.com
Session secret
•••••••••••••••• generated
Generated if left empty
Anonymous notes
On
Let people without an account create notes
Anonymous edits
Off
Email sign-up
On
Create notes by visiting any URL
Off
Default note permission
editable
Image uploads
registered
Max note length
100000
Gravatar avatars
On
Storage
2Gi
Volume for image uploads
Enable HTTPS
On
Cancel Deploy
YAML
apiVersion: leaf/v1
kind: Template
metadata:
name: hedgedoc
displayName: 'HedgeDoc'
description: 'Collaborative markdown notes in the browser, with live editing and slide mode.'
icon: https://github.com/hedgedoc.png?size=256
version: '1.0.0'
category: docs
tags: ['markdown', 'notes', 'collaboration', 'wiki']
keywords: ['hackmd', 'codimd', 'pad', 'realtime editing', 'documents']
homepage: https://hedgedoc.org
license: AGPL-3.0-only
parameters:
- name: appName
displayName: 'App Name'
type: string
default: 'hedgedoc'
required: true
validation:
pattern: '^[a-z][a-z0-9-]{1,58}[a-z0-9]$'
message: 'Must be lowercase alphanumeric with hyphens, 3-60 chars'
- name: domain
displayName: 'Domain'
type: string
required: true
placeholder: 'notes.example.com'
- name: sessionSecret
displayName: 'Session secret'
description: 'Generated if left empty'
type: secret
validation:
min: 32
- name: allowAnonymous
displayName: 'Anonymous notes'
description: 'Let people without an account create notes'
type: boolean
default: true
- name: allowAnonymousEdits
displayName: 'Anonymous edits'
type: boolean
default: false
- name: allowEmailRegister
displayName: 'Email sign-up'
type: boolean
default: true
- name: allowFreeUrl
displayName: 'Create notes by visiting any URL'
type: boolean
default: false
- name: defaultPermission
displayName: 'Default note permission'
type: select
default: 'editable'
options:
- label: 'freely'
value: 'freely'
- label: 'editable'
value: 'editable'
- label: 'limited'
value: 'limited'
- label: 'locked'
value: 'locked'
- label: 'protected'
value: 'protected'
- label: 'private'
value: 'private'
- name: enableUploads
displayName: 'Image uploads'
type: select
default: 'registered'
options:
- label: 'all'
value: 'all'
- label: 'registered'
value: 'registered'
- label: 'none'
value: 'none'
- name: documentMaxLength
displayName: 'Max note length'
type: number
default: 100000
validation:
min: 1000
- name: allowGravatar
displayName: 'Gravatar avatars'
type: boolean
default: true
- name: storage
displayName: 'Storage'
description: 'Volume for image uploads'
type: string
default: '2Gi'
- name: enableTls
displayName: 'Enable HTTPS'
type: boolean
default: true
resources:
- name: db
type: database
config:
name: '{{ params.appName }}-db'
- name: app
type: deployment
config:
name: '{{ params.appName }}'
image: quay.io/hedgedoc/hedgedoc:1.10.3
replicas: 1
ports:
- name: http
containerPort: 3000
servicePort: 3000
protocol: TCP
volumes:
- name: uploads
type: pvc
mountPath: /hedgedoc/public/uploads
storageSize: '{{ params.storage }}'
env:
- key: CMD_DB_URL
value: '{{ resources.db.connectionString }}'
secret: true
- key: CMD_DOMAIN
value: '{{ params.domain }}'
- key: CMD_PROTOCOL_USESSL
value: '{{ params.enableTls }}'
- key: CMD_URL_ADDPORT
value: 'false'
- key: CMD_SESSION_SECRET
value: '{{ params.sessionSecret }}'
secret: true
- key: CMD_ALLOW_ANONYMOUS
value: '{{ params.allowAnonymous }}'
- key: CMD_ALLOW_ANONYMOUS_EDITS
value: '{{ params.allowAnonymousEdits }}'
- key: CMD_ALLOW_EMAIL_REGISTER
value: '{{ params.allowEmailRegister }}'
- key: CMD_ALLOW_FREEURL
value: '{{ params.allowFreeUrl }}'
- key: CMD_DEFAULT_PERMISSION
value: '{{ params.defaultPermission }}'
- key: CMD_ENABLE_UPLOADS
value: '{{ params.enableUploads }}'
- key: CMD_DOCUMENT_MAX_LENGTH
value: '{{ params.documentMaxLength }}'
- key: CMD_ALLOW_GRAVATAR
value: '{{ params.allowGravatar }}'
- name: ingress
type: ingress
config:
host: '{{ params.domain }}'
tlsEnabled: '{{ params.enableTls }}'
routes:
- path: /
serviceName: '{{ resources.app.serviceName }}'
servicePort: 3000