Status: ARCHIVED use k8s@home instead
This is a first try for a Helm Chart for the Matrix Homeserver Dendrite
This chart creates a polylith, where every component is in its own deployment and requires a Postgres server aswell as a NATS JetStream server.
(You can skip this, if you're deploying the PostgreSQL dependency)
You'll need to create the following databases before starting Dendrite (see install.md):
create database dendrite_federationapi;
create database dendrite_mediaapi;
create database dendrite_roomserver;
create database dendrite_userapi_accounts;
create database dendrite_keyserver;
create database dendrite_userapi_devices;
create database dendrite_syncapi;
or
for i in mediaapi syncapi roomserver federationapi appservice keyserver userapi_accounts userapi_devices; do
    sudo -u postgres createdb -O dendrite dendrite_$i
doneCreate a folder appservices and place your configurations in there.  The configurations will be read and placed in a secret dendrite-appservices-conf.
| Key | Type | Default | Description | 
|---|---|---|---|
| components.appservice.connect | string | "appservice:7777" | Connect is the address for other components to connect to | 
| components.appservice.listen_int | int | 7777 | listen_int is the port for the internal api connection | 
| components.clientapi.connect | string | "clientapi:7771" | Connect is the address for other components to connect to | 
| components.clientapi.listen_ext | int | 8071 | listen_ext is the port for external connections | 
| components.clientapi.listen_int | int | 7771 | listen_int is the port for the internal api connection | 
| components.clientapi.registration.disabled | bool | true | Disable registration | 
| components.clientapi.registration.enable_registration_captcha | bool | false | enable reCAPTCHA registration | 
| components.clientapi.registration.recaptcha_bypass_secret | string | "" | reCAPTCHA bypass secret | 
| components.clientapi.registration.recaptcha_private_key | string | "" | reCAPTCHA private key | 
| components.clientapi.registration.recaptcha_public_key | string | "" | reCAPTCHA public key | 
| components.clientapi.registration.recaptcha_siteverify_api | string | "" | |
| components.clientapi.registration.shared_secret | string | "" | If set, allows registration by anyone who knows the shared secret, regardless of whether registration is otherwise disabled. | 
| components.eduserver.connect | string | "eduserver:7778" | Connect is the address for other components to connect to | 
| components.eduserver.listen_int | int | 7778 | listen_int is the port for the internal api connection | 
| components.federationapi.connect | string | "federationapi:7772" | Connect is the address for other components to connect to | 
| components.federationapi.disable_tls_validation | bool | false | Disable TLS validation | 
| components.federationapi.listen_ext | int | 8072 | listen_ext is the port for external connections | 
| components.federationapi.listen_int | int | 7772 | listen_int is the port for the internal api connection | 
| components.federationapi.prefer_direct_fetch | bool | false | |
| components.federationapi.send_max_retries | int | 16 | |
| components.keyserver.connect | string | "keyserver:7779" | Connect is the address for other components to connect to | 
| components.keyserver.listen_int | int | 7779 | listen_int is the port for the internal api connection | 
| components.mediaapi.connect | string | "mediaapi:7774" | Connect is the address for other components to connect to | 
| components.mediaapi.dynamic_thumbnails | bool | false | |
| components.mediaapi.listen_ext | int | 8074 | listen_ext is the port for external connections | 
| components.mediaapi.listen_int | int | 7774 | listen_int is the port for the internal api connection | 
| components.mediaapi.max_file_size_bytes | string | "10485760" | The max file size for uploaded media files | 
| components.mediaapi.max_thumbnail_generators | int | 10 | The maximum number of simultaneous thumbnail generators to run. | 
| components.mediaapi.thumbnail_sizes | list | default dendrite config values | A list of thumbnail sizes to be generated for media content. | 
| components.roomserver.connect | string | "roomserver:7770" | Connect is the address for other components to connect to | 
| components.roomserver.listen_int | int | 7770 | listen_int is the port for the internal api connection | 
| components.syncapi.connect | string | "syncapi:7773" | Connect is the address for other components to connect to | 
| components.syncapi.listen_ext | int | 8073 | listen_ext is the port for external connections | 
| components.syncapi.listen_int | int | 7773 | listen_int is the port for the internal api connection | 
| components.syncapi.real_ip_header | string | "X-Real-IP" | This option controls which HTTP header to inspect to find the real remote IP address of the client. This is likely required if Dendrite is running behind a reverse proxy server. | 
| components.userapi.connect | string | "userapi:7781" | Connect is the address for other components to connect to | 
| components.userapi.listen_int | int | 7781 | listen_int is the port for the internal api connection | 
| configuration.database.conn_max_lifetime | int | -1 | Default database maximum lifetime | 
| configuration.database.host | string | "" | Default database host | 
| configuration.database.max_idle_conns | int | 2 | Default database maximum idle connections | 
| configuration.database.max_open_conns | int | 100 | Default database maximum open connections | 
| configuration.database.password | string | "" | Default database password | 
| configuration.database.user | string | "" | Default database user | 
| configuration.disable_federation | bool | false | Disable federation. Dendrite will not be able to make any outbound HTTP requests to other servers and the federation API will not be exposed. | 
| configuration.dns_cache.cache_lifetime | string | "10m" | Duration for how long DNS cache items should be considered valid (see time.ParseDuration for more) | 
| configuration.dns_cache.cache_size | int | 256 | Maximum number of entries to hold in the DNS cache | 
| configuration.dns_cache.enabled | bool | false | Whether or not the DNS cache is enabled. | 
| configuration.jetstream.addresses | list | [] | List of NATS addresses to connect to. If empty, an in-process NATS server is used. | 
| configuration.jetstream.in_memory | bool | false | Keep all storage in memory. This is mostly useful for unit tests. | 
| configuration.jetstream.storage_path | string | "./" | Persistent directory to store JetStream streams in. (only relevant if not using external NATS) | 
| configuration.jetstream.topic_prefix | string | "Dendrite" | The prefix to use for NATS topic names for this homeserver. Change this only if you are running more than one Dendrite homeserver on the same NATS deployment. | 
| configuration.key_validity_period | string | "168h0m0s" | |
| configuration.logging | list | default dendrite config values | Default logging configuration | 
| configuration.metrics.basic_auth.password | string | "metrics" | HTTP basic authentication password | 
| configuration.metrics.basic_auth.user | string | "metrics" | HTTP basic authentication username | 
| configuration.metrics.enabled | bool | false | Whether or not Prometheus metrics are enabled. | 
| configuration.mscs | list | [] | Configuration for experimental MSC's. (Valid values are: msc2836 and msc2946) | 
| configuration.outbound_proxy.enabled | bool | false | Whether or not an outbound proxy is needed | 
| configuration.outbound_proxy.host | string | "localhost" | Outbound proxy host | 
| configuration.outbound_proxy.port | int | 8080 | Outbound proxy port | 
| configuration.outbound_proxy.protocol | string | "http" | Outbound proxy protocol | 
| configuration.profiling.enabled | bool | false | Enable pprof | 
| configuration.profiling.port | int | 65432 | pprof port, if enabled | 
| configuration.rate_limiting.cooloff_ms | int | 500 | Cooloff time in milliseconds | 
| configuration.rate_limiting.enabled | bool | true | Enable rate limiting | 
| configuration.rate_limiting.threshold | int | 5 | After how many requests a rate limit should be activated | 
| configuration.servername | string | "" | Servername for this Dendrite deployment | 
| configuration.signing_key.create | bool | true | Create a new signing key, if not exists | 
| configuration.signing_key.existingSecret | string | "" | Use an existing secret | 
| configuration.tracing | object | disabled | Default tracing configuration | 
| configuration.trusted_third_party_id_servers | list | ["matrix.org","vector.im"] | Lists of domains that the server will trust as identity servers to verify third party identifiers such as phone numbers and email addresses. | 
| configuration.turn.turn_password | string | "" | The TURN password | 
| configuration.turn.turn_shared_secret | string | "" | |
| configuration.turn.turn_uris | list | [] | |
| configuration.turn.turn_user_lifetime | string | "" | |
| configuration.turn.turn_username | string | "" | The TURN username | 
| configuration.version | int | 2 | Dendrite config version | 
| configuration.well_known_server_name | string | "" | The server name to delegate server-server communications to, with optional port e.g. localhost:443 | 
| image.name | string | "matrixdotorg/dendrite-polylith:v0.6.2" | Docker repository/image to use | 
| image.pullPolicy | string | "IfNotPresent" | Kubernetes pullPolicy | 
| ingress.annotations | object | {} | |
| ingress.enabled | bool | false | Create an ingress for a monolith deployment | 
| ingress.hosts | list | [] | |
| ingress.tls | list | [] | |
| nats.enabled | bool | false | Deploy NATS JetStream dependency | 
| nats.nats.jetstream.enabled | bool | true | Enable NATS JetStream (required in polylith mode) | 
| persistence.logs.capacity | string | "10Gi" | |
| persistence.logs.existingClaim | string | "" | |
| persistence.media.capacity | string | "10Gi" | |
| persistence.media.existingClaim | string | "" | |
| persistence.storageClass | string | "local-path" | |
| polylith | bool | true | Whether or not to deploy a polylith | 
| postgresql.enabled | bool | false | Deploy PostgreSQL dependency | 
| postgresql.global.postgresql.existingSecret | string | "" | |
| postgresql.global.postgresql.postgresqlDatabase | string | "" | |
| postgresql.global.postgresql.postgresqlPassword | string | "" | |
| postgresql.global.postgresql.postgresqlUsername | string | "" | |
| postgresql.global.postgresql.replicationPassword | string | "" | |
| postgresql.global.postgresql.servicePort | string | "" | |
| postgresql.global.storageClass | string | "" | |
| postgresql.initdbScripts."create_db.sh" | string | creates the required databases | Create databases when first creating a PostgreSQL Server | 
| postgresql.persistence.enabled | bool | false | |
| resources | object | sets some sane default values | Default resource requests/limits. This can be set individually for each component, see mediaapi | 
Autogenerated from chart metadata using helm-docs v1.7.0