|
| 1 | +# cryptpad |
| 2 | + |
| 3 | +CryptPad is a collaboration office suite that is end-to-end-encrypted and open-source. |
| 4 | + |
| 5 | +  |
| 6 | + |
| 7 | +## Installing the Chart |
| 8 | + |
| 9 | +Install the Helm Chart using: |
| 10 | + |
| 11 | +```console |
| 12 | +helm repo add cryptpad-github https://cryptpad.github.io/helm |
| 13 | +helm install cryptpad cryptpad-github/cryptpad |
| 14 | +``` |
| 15 | + |
| 16 | +### Configure and Customization |
| 17 | + |
| 18 | +Values example of how customize your intance: |
| 19 | + |
| 20 | +```yaml |
| 21 | +# https://docs.cryptpad.org/en/admin_guide/installation.html#configure-cryptpad |
| 22 | +config: |
| 23 | + adminKeys: [ |
| 24 | + "[cryptpad-user1@my.awesome.website/YZgXQxKR0Rcb6r6CmxHPdAGLVludrAF2lEnkbx1vVOo=]", |
| 25 | + ] |
| 26 | + |
| 27 | +# https://docs.cryptpad.org/en/admin_guide/customization.html#application-config |
| 28 | +application_config: |
| 29 | + availableLanguages: [ 'en', 'de', 'fr', 'pt-br' ] |
| 30 | + availablePadTypes: [ 'drive', 'teams', 'sheet', 'doc', 'presentation', 'pad', 'kanban', 'code', 'form', 'poll', 'whiteboard', |
| 31 | + 'file', 'contacts', 'slide', 'convert', 'diagram' ] |
| 32 | + privacy: | |
| 33 | + { |
| 34 | + "default": 'https://example.com/privacy.html', |
| 35 | + "en": 'https://example.com/privacy.en.html', // in case English is not your default language |
| 36 | + "de": 'https://example.com/privacy.de.html', // you get the idea? |
| 37 | + } |
| 38 | +``` |
| 39 | +
|
| 40 | +## Requirements |
| 41 | +
|
| 42 | +| Repository | Name | Version | |
| 43 | +|------------|------|---------| |
| 44 | +| https://charts.bitnami.com/bitnami | common | 2.9.1 | |
| 45 | +
|
| 46 | +## Values |
| 47 | +
|
| 48 | +| Key | Type | Default | Description | |
| 49 | +|-----|------|---------|-------------| |
| 50 | +| affinity | object | `{}` | Values for the Affinity | |
| 51 | +| application_config | string | `nil` | Configuration of the [application](https://docs.cryptpad.org/en/admin_guide/customization.html#application-config) | |
| 52 | +| autoscaling.enabled | bool | `false` | Enable the Autoscaling | |
| 53 | +| autoscaling.maxReplicas | int | `100` | Maximum numbers of replicas | |
| 54 | +| autoscaling.minReplicas | int | `1` | Minimal numbers of replicas | |
| 55 | +| autoscaling.targetCPUUtilizationPercentage | int | `80` | Percentage of the targeted CPU Utilization | |
| 56 | +| autoscaling.targetMemoryUtilizationPercentage | int | `80` | Percentage of the targeted Memory Utilization | |
| 57 | +| config.adminKeys | list | `[]` | Public signing key of users to give admin panel access | |
| 58 | +| config.archivePath | string | `"./data/archive"` | Directory to archive data for a configurable period before deleting it. | |
| 59 | +| config.blobPath | string | `"./blob"` | Directory to store encrypted files that was uploaded. | |
| 60 | +| config.blobStagingPath | string | `"./data/blobstage"` | Directory to store incomplete blobs in a 'staging' area until they are fully uploaded. | |
| 61 | +| config.blockPath | string | `"./block"` | Directory to store authenticated blocks. | |
| 62 | +| config.decreePath | string | `"./data/decrees"` | TODO | |
| 63 | +| config.filePath | string | `"./datastore/"` | Directory where files/documents should be stored. | |
| 64 | +| config.httpAddress | string | `"0.0.0.0"` | httpAddress specifies the address on which the nodejs server should be accessible. | |
| 65 | +| config.installMethod | string | `"helm-docker"` | | |
| 66 | +| config.logFeedback | bool | `false` | Enable feedback log, but requires feedback on log level to work. | |
| 67 | +| config.logLevel | string | `"info"` | Change log level from this list below by order of importance: (silly, verbose, debug, feedback, info, warn, error). | |
| 68 | +| config.logPath | string | `"./data/logs"` | Directory to store logging events. | |
| 69 | +| config.logToStdout | bool | `false` | Log activity to stdout, this may be useful for debugging | |
| 70 | +| config.pinPath | string | `"./data/pins"` | Directory to store documents that was pinned to to be stored by the server indefinitely. | |
| 71 | +| config.taskPath | string | `"./data/tasks"` | Directory to store a list of scheduled tasks. | |
| 72 | +| config.verbose | bool | `false` | Enable verbose logging | |
| 73 | +| cpadConfig | string | `"/cryptpad/config/config.js"` | File to mount for the CPAD Configuration (`CPAD_CONF`) | |
| 74 | +| fullnameOverride | string | `""` | | |
| 75 | +| image.pullPolicy | string | `"IfNotPresent"` | | |
| 76 | +| image.repository | string | `"cryptpad/cryptpad"` | | |
| 77 | +| image.tag | string | `"version-5.4.0"` | | |
| 78 | +| imagePullSecrets | list | `[]` | | |
| 79 | +| ingress.annotations | object | `{}` | | |
| 80 | +| ingress.className | string | `""` | | |
| 81 | +| ingress.enabled | bool | `false` | | |
| 82 | +| ingress.hosts[0].host | string | `"localhost"` | | |
| 83 | +| ingress.hosts[0].paths[0].path | string | `"/"` | | |
| 84 | +| ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` | | |
| 85 | +| ingress.tls | list | `[]` | | |
| 86 | +| nameOverride | string | `""` | | |
| 87 | +| nodeSelector | object | `{}` | Values for the Node Selector | |
| 88 | +| persistence.cryptpad.blob.accessModes[0] | string | `"ReadWriteOnce"` | | |
| 89 | +| persistence.cryptpad.blob.annotations | object | `{}` | | |
| 90 | +| persistence.cryptpad.blob.dataSource | object | `{}` | | |
| 91 | +| persistence.cryptpad.blob.existingClaim | string | `""` | | |
| 92 | +| persistence.cryptpad.blob.labels | object | `{}` | | |
| 93 | +| persistence.cryptpad.blob.selector | object | `{}` | | |
| 94 | +| persistence.cryptpad.blob.size | string | `"100Mi"` | | |
| 95 | +| persistence.cryptpad.blob.storageClass | string | `""` | | |
| 96 | +| persistence.cryptpad.block.accessModes[0] | string | `"ReadWriteOnce"` | | |
| 97 | +| persistence.cryptpad.block.annotations | object | `{}` | | |
| 98 | +| persistence.cryptpad.block.dataSource | object | `{}` | | |
| 99 | +| persistence.cryptpad.block.existingClaim | string | `""` | | |
| 100 | +| persistence.cryptpad.block.labels | object | `{}` | | |
| 101 | +| persistence.cryptpad.block.selector | object | `{}` | | |
| 102 | +| persistence.cryptpad.block.size | string | `"100Mi"` | | |
| 103 | +| persistence.cryptpad.block.storageClass | string | `""` | | |
| 104 | +| persistence.cryptpad.data.accessModes[0] | string | `"ReadWriteOnce"` | | |
| 105 | +| persistence.cryptpad.data.annotations | object | `{}` | | |
| 106 | +| persistence.cryptpad.data.dataSource | object | `{}` | | |
| 107 | +| persistence.cryptpad.data.existingClaim | string | `""` | | |
| 108 | +| persistence.cryptpad.data.labels | object | `{}` | | |
| 109 | +| persistence.cryptpad.data.selector | object | `{}` | | |
| 110 | +| persistence.cryptpad.data.size | string | `"100Mi"` | | |
| 111 | +| persistence.cryptpad.data.storageClass | string | `""` | | |
| 112 | +| persistence.cryptpad.datastore.accessModes[0] | string | `"ReadWriteOnce"` | | |
| 113 | +| persistence.cryptpad.datastore.annotations | object | `{}` | | |
| 114 | +| persistence.cryptpad.datastore.dataSource | object | `{}` | | |
| 115 | +| persistence.cryptpad.datastore.existingClaim | string | `""` | | |
| 116 | +| persistence.cryptpad.datastore.labels | object | `{}` | | |
| 117 | +| persistence.cryptpad.datastore.selector | object | `{}` | | |
| 118 | +| persistence.cryptpad.datastore.size | string | `"100Mi"` | | |
| 119 | +| persistence.cryptpad.datastore.storageClass | string | `""` | | |
| 120 | +| persistence.enabled | bool | `true` | Enable the persistence | |
| 121 | +| podAnnotations | object | `{}` | Annotations for the Pod | |
| 122 | +| podSecurityContext | object | `{"fsGroup":4001}` | Security context for the Pod | |
| 123 | +| replicaCount | int | `1` | Number of replicas | |
| 124 | +| resources | object | `{}` | Specify default resources. We usually recommend not to specify default resources and to leave this as a conscious choice for the user. This also increases chances charts run on environments with little resources, such as Minikube. | |
| 125 | +| securityContext | object | `{}` | Security context | |
| 126 | +| service.externalIPs | list | `[]` | | |
| 127 | +| service.externalPort | int | `80` | | |
| 128 | +| service.internalPort | string | `"http"` | | |
| 129 | +| service.name | string | `"http"` | | |
| 130 | +| service.portName | string | `"node"` | | |
| 131 | +| service.sessionAffinity | string | `"ClientIP"` | | |
| 132 | +| service.type | string | `"ClusterIP"` | | |
| 133 | +| serviceAccount.annotations | object | `{}` | Annotations to add to the service account | |
| 134 | +| serviceAccount.create | bool | `true` | Specifies whether a service account should be created | |
| 135 | +| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template | |
| 136 | +| tolerations | list | `[]` | Values for the Tolerations | |
| 137 | +| workloadStateful | bool | `true` | Enable to choose witch kind of workload will be used: (true) StatefulSet or (false) for Deployment | |
| 138 | + |
| 139 | +## Backup |
| 140 | + |
| 141 | +Important volumes or paths (in case different solution like empty/sidecar backup tools) to be considered: |
| 142 | + |
| 143 | +* **cryptpad-blob** volume, or **/cryptpad/blob** |
| 144 | +* **cryptpad-block** volume, or **/cryptpad/block** |
| 145 | +* **cryptpad-data** volume, or **/cryptpad/data** |
| 146 | +* **cryptpad-datastore** volume, or **/cryptpad/datastore** |
| 147 | + |
| 148 | +And configuration file or command line with preferences used to install Helm release. |
| 149 | + |
| 150 | +There are some tools that can manage the backups on k8s workloads. We can suggest [Velero](https://velero.io/), as we already used on some internal clusters. |
| 151 | + |
| 152 | +There is specific product documentation on: https://docs.cryptpad.org/en/admin_guide/maintenance.html#backup-and-migration |
| 153 | + |
| 154 | +## Logging |
| 155 | + |
| 156 | +Current logging resources are standard [Kubernetes logging](https://kubernetes.io/docs/concepts/cluster-administration/logging/). |
| 157 | + |
| 158 | +Example of how change log levels from instance: |
| 159 | + |
| 160 | +```yaml |
| 161 | +config: |
| 162 | + verbose: false |
| 163 | + logToStdout: false |
| 164 | + logLevel: 'info' |
| 165 | + logFeedback: false |
| 166 | +``` |
| 167 | + |
| 168 | +---------------------------------------------- |
| 169 | +Autogenerated from chart metadata using [helm-docs v1.11.2](https://github.com/norwoodj/helm-docs/releases/v1.11.2) |
0 commit comments