Skip to content

Commit 061e3b0

Browse files
authored
Merge pull request #12 from cryptpad/docs/better-readme
Docs: improve the README
2 parents 2a1751c + d3bbd70 commit 061e3b0

9 files changed

Lines changed: 428 additions & 17 deletions

File tree

.github/workflows/docs.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Generate Helm documentation
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- '.github/**'
9+
- 'charts/**'
10+
11+
permissions:
12+
contents: write
13+
14+
jobs:
15+
update-chart-metadata:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v3
19+
- uses: gabe565/setup-helm-docs-action@v1
20+
- run: helm-docs
21+
- name: Commit documentation
22+
run: |
23+
git config --global user.name '$GITHUB_ACTOR'
24+
git config --global user.email '$GITHUB_ACTOR@users.noreply.github.com'
25+
git add .
26+
git commit -sm "docs: generate chart documentation"
27+
git push

.github/workflows/release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ on:
88
- '.github/**'
99
- 'charts/**'
1010
- '!**.md'
11+
- '!**.md.gotmpl'
1112

1213
jobs:
1314

CONTRIBUTING.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
2+
If you want to contribute, please fork the repository and make changes as you'd like. Pull requests are warmly welcome.

README.md

Lines changed: 92 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,106 @@
1-
# CryptPad Helm Chart
1+
<div align="center">
22

3-
This is the [CryptPad](https://cryptpad.org) [Helm Chart](https://helm.sh/) for easy deployment on Kubernetes.
3+
<img src="assets/logo.png" alt="logo" width="300" height="auto" />
4+
<h1>CryptPad Helm Chart</h1>
5+
6+
7+
<!-- Badges -->
8+
<p>
9+
<a href="https://github.com/cryptpad/helm/graphs/contributors">
10+
<img src="https://img.shields.io/github/contributors/cryptpad/helm" alt="contributors" />
11+
</a>
12+
<a href="https://github.com/cryptpad/helm/commits/main">
13+
<img src="https://img.shields.io/github/last-commit/cryptpad/helm" alt="last update" />
14+
</a>
15+
<a href="https://github.com/cryptpad/helm/network/members">
16+
<img src="https://img.shields.io/github/forks/cryptpad/helm" alt="forks" />
17+
</a>
18+
<a href="https://github.com/cryptpad/cryptpad/helm">
19+
<img src="https://img.shields.io/github/stars/cryptpad/helm" alt="stars" />
20+
</a>
21+
<a href="https://github.com/cryptpad/helm/issues/">
22+
<img src="https://img.shields.io/github/issues/cryptpad/helm" alt="open issues" />
23+
</a>
24+
<a href="https://github.com/cryptpad/helm/blob/master/LICENSE">
25+
<img src="https://img.shields.io/github/license/cryptpad/helm.svg" alt="license" />
26+
</a>
27+
</p>
28+
29+
<h4>
30+
<a href="https://github.com/cryptpad/helm">Documentation</a>
31+
<span> · </span>
32+
<a href="https://github.com/cryptpad/helm/issues/">Report Bug</a>
33+
<span> · </span>
34+
<a href="https://github.com/cryptpad/helm/issues/">Request Feature</a>
35+
</h4>
36+
</div>
437

5-
## Requirements
38+
<br />
639

7-
* Kubernetes 1.23+
40+
<!-- Table of Contents -->
41+
# :notebook_with_decorative_cover: Table of Contents
842

9-
## Usage
43+
- [:notebook\_with\_decorative\_cover: Table of Contents](#notebook_with_decorative_cover-table-of-contents)
44+
- [:star2: About the Project](#star2-about-the-project)
45+
- [:toolbox: Getting Started](#toolbox-getting-started)
46+
- [:bangbang: Prerequisites](#bangbang-prerequisites)
47+
- [:books: Documentation](#books-documentation)
48+
- [:fast\_forward: TL;DR;](#fast\_forward-tldr)
49+
- [:test\_tube: Running Tests](#test_tube-running-tests)
50+
- [:wave: Contributing](#wave-contributing)
51+
- [:warning: License](#warning-license)
52+
53+
<!-- About the Project -->
54+
## :star2: About the Project
55+
56+
This is the [Helm Chart](https://helm.sh/) for easy deployment of [CryptPad](https://cryptpad.org) on Kubernetes.
57+
58+
<!-- Getting Started -->
59+
## :toolbox: Getting Started
60+
61+
<!-- Prerequisites -->
62+
### :bangbang: Prerequisites
63+
64+
This project requires [Kubernetes 1.23+](https://kubernetes.io/) and [Helm](https://helm.sh/docs/intro/install/) installed on your system
65+
66+
### :books: Documentation
67+
68+
* Check documentation on [README.md](charts/cryptpad/README.md) on charts/cryptpad.
69+
70+
### :fast_forward: TL;DR;
71+
72+
Install the Helm Chart using:
1073

1174
```bash
1275
helm repo add cryptpad-github https://cryptpad.github.io/helm
1376
helm install cryptpad cryptpad-github/cryptpad
1477
```
1578

16-
Check [values.yaml](charts/cryptpad/values.yaml) for custom values/settings.
79+
<!-- Running Tests -->
80+
### :test_tube: Running Tests
81+
82+
To run tests, run the following command
83+
84+
```bash
85+
for FILE in charts/*; do
86+
helm unittest $FILE
87+
done
88+
```
89+
90+
<!-- Contributing -->
91+
## :wave: Contributing
92+
93+
<a href="https://github.com/cryptpad/helm/graphs/contributors">
94+
<img src="https://contrib.rocks/image?repo=cryptpad/helm" />
95+
</a>
96+
97+
98+
Contributions are always welcome!
99+
100+
See `CONTRIBUTING.md` for ways to get started.
17101

18-
# License
102+
<!-- License -->
103+
## :warning: License
19104

20105
![AGPL logo](https://www.gnu.org/graphics/agplv3-155x51.png "GNU Affero General Public License")
21106

assets/logo.png

17.8 KB
Loading

charts/cryptpad/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ keywords:
55
- open office
66
- storage
77
- end2end
8-
description: CryptPad is a collaboration suite that is end-to-end-encrypted and open-source.
8+
description: CryptPad is a collaboration office suite that is end-to-end-encrypted and open-source.
99
home: https://cryptpad.org
1010
icon: https://cryptpad.org/images/CryptPad_logo_text.svg
1111
# A chart can be either an 'application' or a 'library' chart.
@@ -21,7 +21,7 @@ type: application
2121
# This is the chart version. This version number should be incremented each time you make changes
2222
# to the chart and its templates, including the app version.
2323
# Versions are expected to follow Semantic Versioning (https://semver.org/)
24-
version: 0.0.8
24+
version: 0.0.9
2525

2626
# This is the version number of the application being deployed. This version number should be
2727
# incremented each time you make changes to the application. Versions are not expected to

charts/cryptpad/README.md

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
# cryptpad
2+
3+
CryptPad is a collaboration office suite that is end-to-end-encrypted and open-source.
4+
5+
![Version: 0.0.9](https://img.shields.io/badge/Version-0.0.9-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
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

Comments
 (0)