From 6cd1285ca0276bebd407110c37031bc4622f0b79 Mon Sep 17 00:00:00 2001 From: idk Date: Mon, 23 Sep 2024 13:28:28 -0400 Subject: Adds support for listening on and connecting to I2P and Onion services securely (#3293) This PR adds 2 `dendrite-demo` main's, each designed expressly to serve a Hidden Service/Overlay network. The first, `dendrite-demo-i2p` add self-configuration for use of dendrite as an I2P hidden service(eepsite) and to connect to I2P services(federate) as an I2P client. It further disables the `dendrite` server from communicating with non-anonymous servers by federation(because I2P does not canonically have the ability to exit, we rely on donors for exit traffic), and enables the use of self-signed TLS certificates([because I2P services are self-authenticating but TLS is still required for other aspects of the system to work reliably](https://tor.stackexchange.com/questions/13887/registering-onion-with-certificate-authority)). This demo turns the system into an "pseudonymous" homeserver which people can connect to using an I2P-enabled Matrix client(I like `cinny` and it's what I tested with). The second, `dendrite-demo-tor` adds self-configuration for the use of dendrite as an Onion service and to connect to other onion services and non-anonymous web sites using Tor to obfuscate it's physical location and providing, optionally, pseudonymity. It also enables the use of self-signed TLS certificates, for the same reason as with I2P, because onion services aren't typically eligible for TLS certificates. It has also been tested with `cinny`. These services are both pseudonymous like myself, not anonymous. I will be meeting members of the element team at the CCC assembly shortly to discuss contributing under my pseudonym. As none of the other `dendrite-demo` have unit tests I did not add them to these checkins. * [*] I have added Go unit tests or [Complement integration tests](https://github.com/matrix-org/complement) for this PR _or_ I have justified why this PR doesn't need tests --------- Co-authored-by: eyedeekay Co-authored-by: Till Faelligen <2353100+S7evinK@users.noreply.github.com> --- setup/base/base.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'setup') diff --git a/setup/base/base.go b/setup/base/base.go index 82068aa9..26615fc0 100644 --- a/setup/base/base.go +++ b/setup/base/base.go @@ -52,6 +52,7 @@ var staticContent embed.FS //go:embed static/client/login var loginFallback embed.FS +var StaticContent = staticContent const HTTPServerTimeout = time.Minute * 5 @@ -235,7 +236,6 @@ func SetupAndServeHTTP( logrus.WithError(err).Fatal("failed to serve unix socket") } } - } else { if err := externalServ.ListenAndServe(); err != nil { if err != http.ErrServerClosed { -- cgit v1.2.3