aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dendrite-sample.monolith.yaml5
-rw-r--r--dendrite-sample.polylith.yaml5
-rw-r--r--setup/config/config_jetstream.go6
-rw-r--r--setup/jetstream/nats.go10
4 files changed, 25 insertions, 1 deletions
diff --git a/dendrite-sample.monolith.yaml b/dendrite-sample.monolith.yaml
index cc6c173e..a34b8af5 100644
--- a/dendrite-sample.monolith.yaml
+++ b/dendrite-sample.monolith.yaml
@@ -113,6 +113,11 @@ global:
addresses:
# - localhost:4222
+ # Disable the validation of TLS certificates of NATS. This is
+ # not recommended in production since it may allow NATS traffic
+ # to be sent to an insecure endpoint.
+ disable_tls_validation: false
+
# Persistent directory to store JetStream streams in. This directory should be
# preserved across Dendrite restarts.
storage_path: ./
diff --git a/dendrite-sample.polylith.yaml b/dendrite-sample.polylith.yaml
index 92cab19b..55061122 100644
--- a/dendrite-sample.polylith.yaml
+++ b/dendrite-sample.polylith.yaml
@@ -103,6 +103,11 @@ global:
addresses:
- hostname:4222
+ # Disable the validation of TLS certificates of NATS. This is
+ # not recommended in production since it may allow NATS traffic
+ # to be sent to an insecure endpoint.
+ disable_tls_validation: false
+
# The prefix to use for stream names for this homeserver - really only useful
# if you are running more than one Dendrite server on the same NATS deployment.
topic_prefix: Dendrite
diff --git a/setup/config/config_jetstream.go b/setup/config/config_jetstream.go
index e4cfd4d3..a7827597 100644
--- a/setup/config/config_jetstream.go
+++ b/setup/config/config_jetstream.go
@@ -17,6 +17,10 @@ type JetStream struct {
TopicPrefix string `yaml:"topic_prefix"`
// Keep all storage in memory. This is mostly useful for unit tests.
InMemory bool `yaml:"in_memory"`
+ // Disable logging. This is mostly useful for unit tests.
+ NoLog bool `yaml:"-"`
+ // Disables TLS validation. This should NOT be used in production
+ DisableTLSValidation bool `yaml:"disable_tls_validation"`
}
func (c *JetStream) Prefixed(name string) string {
@@ -32,6 +36,8 @@ func (c *JetStream) Defaults(generate bool) {
c.TopicPrefix = "Dendrite"
if generate {
c.StoragePath = Path("./")
+ c.NoLog = true
+ c.DisableTLSValidation = true
}
}
diff --git a/setup/jetstream/nats.go b/setup/jetstream/nats.go
index 248b0e65..be216a02 100644
--- a/setup/jetstream/nats.go
+++ b/setup/jetstream/nats.go
@@ -1,6 +1,7 @@
package jetstream
import (
+ "crypto/tls"
"fmt"
"reflect"
"strings"
@@ -45,6 +46,7 @@ func (s *NATSInstance) Prepare(process *process.ProcessContext, cfg *config.JetS
NoSystemAccount: true,
MaxPayload: 16 * 1024 * 1024,
NoSigs: true,
+ NoLog: cfg.NoLog,
})
if err != nil {
panic(err)
@@ -75,7 +77,13 @@ func (s *NATSInstance) Prepare(process *process.ProcessContext, cfg *config.JetS
func setupNATS(process *process.ProcessContext, cfg *config.JetStream, nc *natsclient.Conn) (natsclient.JetStreamContext, *natsclient.Conn) {
if nc == nil {
var err error
- nc, err = natsclient.Connect(strings.Join(cfg.Addresses, ","))
+ opts := []nats.Option{}
+ if cfg.DisableTLSValidation {
+ opts = append(opts, nats.Secure(&tls.Config{
+ InsecureSkipVerify: true,
+ }))
+ }
+ nc, err = natsclient.Connect(strings.Join(cfg.Addresses, ","), opts...)
if err != nil {
logrus.WithError(err).Panic("Unable to connect to NATS")
return nil, nil