mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-14 09:33:53 +01:00
Merge pull request #4290 from matrix-org/rav/remove_webclient
Stop installing Matrix Console by default
This commit is contained in:
commit
188945713e
6 changed files with 44 additions and 58 deletions
|
@ -289,10 +289,6 @@ go back in your web client and proceed further.
|
||||||
If all goes well you should at least be able to log in, create a room, and
|
If all goes well you should at least be able to log in, create a room, and
|
||||||
start sending messages.
|
start sending messages.
|
||||||
|
|
||||||
(The homeserver runs a web client by default at https://localhost:8448/, though
|
|
||||||
as of the time of writing it is somewhat outdated and not really recommended -
|
|
||||||
https://github.com/matrix-org/synapse/issues/1527).
|
|
||||||
|
|
||||||
.. _`client-user-reg`:
|
.. _`client-user-reg`:
|
||||||
|
|
||||||
Registering a new user from a client
|
Registering a new user from a client
|
||||||
|
@ -372,10 +368,7 @@ ArchLinux
|
||||||
|
|
||||||
The quickest way to get up and running with ArchLinux is probably with the community package
|
The quickest way to get up and running with ArchLinux is probably with the community package
|
||||||
https://www.archlinux.org/packages/community/any/matrix-synapse/, which should pull in most of
|
https://www.archlinux.org/packages/community/any/matrix-synapse/, which should pull in most of
|
||||||
the necessary dependencies. If the default web client is to be served (enabled by default in
|
the necessary dependencies.
|
||||||
the generated config),
|
|
||||||
https://www.archlinux.org/packages/community/any/python2-matrix-angular-sdk/ will also need to
|
|
||||||
be installed.
|
|
||||||
|
|
||||||
pip may be outdated (6.0.7-1 and needs to be upgraded to 6.0.8-1 )::
|
pip may be outdated (6.0.7-1 and needs to be upgraded to 6.0.8-1 )::
|
||||||
|
|
||||||
|
|
|
@ -115,6 +115,10 @@ Upgrading to v0.34.0
|
||||||
case a hypothetical future identity server was put there. If you don't
|
case a hypothetical future identity server was put there. If you don't
|
||||||
remove it, users may be unable to deactivate their accounts.
|
remove it, users may be unable to deactivate their accounts.
|
||||||
|
|
||||||
|
3. This release no longer installs the (unmaintained) Matrix Console web client
|
||||||
|
as part of the default installation. It is possible to re-enable it by
|
||||||
|
installing it separately and setting the ``web_client_location`` config
|
||||||
|
option, but please consider switching to another client.
|
||||||
|
|
||||||
Upgrading to v0.33.7
|
Upgrading to v0.33.7
|
||||||
====================
|
====================
|
||||||
|
|
1
changelog.d/4290.feature
Normal file
1
changelog.d/4290.feature
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Remove Matrix console from the default distribution
|
|
@ -54,7 +54,7 @@ from synapse.metrics import RegistryProxy
|
||||||
from synapse.metrics.background_process_metrics import run_as_background_process
|
from synapse.metrics.background_process_metrics import run_as_background_process
|
||||||
from synapse.metrics.resource import METRICS_PREFIX, MetricsResource
|
from synapse.metrics.resource import METRICS_PREFIX, MetricsResource
|
||||||
from synapse.module_api import ModuleApi
|
from synapse.module_api import ModuleApi
|
||||||
from synapse.python_dependencies import CONDITIONAL_REQUIREMENTS, check_requirements
|
from synapse.python_dependencies import check_requirements
|
||||||
from synapse.replication.http import REPLICATION_PREFIX, ReplicationRestResource
|
from synapse.replication.http import REPLICATION_PREFIX, ReplicationRestResource
|
||||||
from synapse.replication.tcp.resource import ReplicationStreamProtocolFactory
|
from synapse.replication.tcp.resource import ReplicationStreamProtocolFactory
|
||||||
from synapse.rest import ClientRestResource
|
from synapse.rest import ClientRestResource
|
||||||
|
@ -79,36 +79,6 @@ def gz_wrap(r):
|
||||||
return EncodingResourceWrapper(r, [GzipEncoderFactory()])
|
return EncodingResourceWrapper(r, [GzipEncoderFactory()])
|
||||||
|
|
||||||
|
|
||||||
def build_resource_for_web_client(hs):
|
|
||||||
webclient_path = hs.get_config().web_client_location
|
|
||||||
if not webclient_path:
|
|
||||||
try:
|
|
||||||
import syweb
|
|
||||||
except ImportError:
|
|
||||||
quit_with_error(
|
|
||||||
"Could not find a webclient.\n\n"
|
|
||||||
"Please either install the matrix-angular-sdk or configure\n"
|
|
||||||
"the location of the source to serve via the configuration\n"
|
|
||||||
"option `web_client_location`\n\n"
|
|
||||||
"To install the `matrix-angular-sdk` via pip, run:\n\n"
|
|
||||||
" pip install '%(dep)s'\n"
|
|
||||||
"\n"
|
|
||||||
"You can also disable hosting of the webclient via the\n"
|
|
||||||
"configuration option `web_client`\n"
|
|
||||||
% {"dep": CONDITIONAL_REQUIREMENTS["web_client"].keys()[0]}
|
|
||||||
)
|
|
||||||
syweb_path = os.path.dirname(syweb.__file__)
|
|
||||||
webclient_path = os.path.join(syweb_path, "webclient")
|
|
||||||
# GZip is disabled here due to
|
|
||||||
# https://twistedmatrix.com/trac/ticket/7678
|
|
||||||
# (It can stay enabled for the API resources: they call
|
|
||||||
# write() with the whole body and then finish() straight
|
|
||||||
# after and so do not trigger the bug.
|
|
||||||
# GzipFile was removed in commit 184ba09
|
|
||||||
# return GzipFile(webclient_path) # TODO configurable?
|
|
||||||
return File(webclient_path) # TODO configurable?
|
|
||||||
|
|
||||||
|
|
||||||
class SynapseHomeServer(HomeServer):
|
class SynapseHomeServer(HomeServer):
|
||||||
DATASTORE_CLASS = DataStore
|
DATASTORE_CLASS = DataStore
|
||||||
|
|
||||||
|
@ -240,7 +210,16 @@ class SynapseHomeServer(HomeServer):
|
||||||
resources[SERVER_KEY_V2_PREFIX] = KeyApiV2Resource(self)
|
resources[SERVER_KEY_V2_PREFIX] = KeyApiV2Resource(self)
|
||||||
|
|
||||||
if name == "webclient":
|
if name == "webclient":
|
||||||
resources[WEB_CLIENT_PREFIX] = build_resource_for_web_client(self)
|
webclient_path = self.get_config().web_client_location
|
||||||
|
|
||||||
|
if webclient_path is None:
|
||||||
|
logger.warning(
|
||||||
|
"Not enabling webclient resource, as web_client_location is unset."
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
# GZip is disabled here due to
|
||||||
|
# https://twistedmatrix.com/trac/ticket/7678
|
||||||
|
resources[WEB_CLIENT_PREFIX] = File(webclient_path)
|
||||||
|
|
||||||
if name == "metrics" and self.get_config().enable_metrics:
|
if name == "metrics" and self.get_config().enable_metrics:
|
||||||
resources[METRICS_PREFIX] = MetricsResource(RegistryProxy)
|
resources[METRICS_PREFIX] = MetricsResource(RegistryProxy)
|
||||||
|
|
|
@ -34,7 +34,6 @@ class ServerConfig(Config):
|
||||||
raise ConfigError(str(e))
|
raise ConfigError(str(e))
|
||||||
|
|
||||||
self.pid_file = self.abspath(config.get("pid_file"))
|
self.pid_file = self.abspath(config.get("pid_file"))
|
||||||
self.web_client = config["web_client"]
|
|
||||||
self.web_client_location = config.get("web_client_location", None)
|
self.web_client_location = config.get("web_client_location", None)
|
||||||
self.soft_file_limit = config["soft_file_limit"]
|
self.soft_file_limit = config["soft_file_limit"]
|
||||||
self.daemonize = config.get("daemonize")
|
self.daemonize = config.get("daemonize")
|
||||||
|
@ -128,6 +127,9 @@ class ServerConfig(Config):
|
||||||
elif not bind_addresses:
|
elif not bind_addresses:
|
||||||
bind_addresses.append('')
|
bind_addresses.append('')
|
||||||
|
|
||||||
|
if not self.web_client_location:
|
||||||
|
_warn_if_webclient_configured(self.listeners)
|
||||||
|
|
||||||
self.gc_thresholds = read_gc_thresholds(config.get("gc_thresholds", None))
|
self.gc_thresholds = read_gc_thresholds(config.get("gc_thresholds", None))
|
||||||
|
|
||||||
bind_port = config.get("bind_port")
|
bind_port = config.get("bind_port")
|
||||||
|
@ -136,8 +138,6 @@ class ServerConfig(Config):
|
||||||
bind_host = config.get("bind_host", "")
|
bind_host = config.get("bind_host", "")
|
||||||
gzip_responses = config.get("gzip_responses", True)
|
gzip_responses = config.get("gzip_responses", True)
|
||||||
|
|
||||||
names = ["client", "webclient"] if self.web_client else ["client"]
|
|
||||||
|
|
||||||
self.listeners.append({
|
self.listeners.append({
|
||||||
"port": bind_port,
|
"port": bind_port,
|
||||||
"bind_addresses": [bind_host],
|
"bind_addresses": [bind_host],
|
||||||
|
@ -145,7 +145,7 @@ class ServerConfig(Config):
|
||||||
"type": "http",
|
"type": "http",
|
||||||
"resources": [
|
"resources": [
|
||||||
{
|
{
|
||||||
"names": names,
|
"names": ["client"],
|
||||||
"compress": gzip_responses,
|
"compress": gzip_responses,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -164,7 +164,7 @@ class ServerConfig(Config):
|
||||||
"type": "http",
|
"type": "http",
|
||||||
"resources": [
|
"resources": [
|
||||||
{
|
{
|
||||||
"names": names,
|
"names": ["client"],
|
||||||
"compress": gzip_responses,
|
"compress": gzip_responses,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -247,13 +247,9 @@ class ServerConfig(Config):
|
||||||
#
|
#
|
||||||
# cpu_affinity: 0xFFFFFFFF
|
# cpu_affinity: 0xFFFFFFFF
|
||||||
|
|
||||||
# Whether to serve a web client from the HTTP/HTTPS root resource.
|
# The path to the web client which will be served at /_matrix/client/
|
||||||
web_client: True
|
# if 'webclient' is configured under the 'listeners' configuration.
|
||||||
|
#
|
||||||
# The root directory to server for the above web client.
|
|
||||||
# If left undefined, synapse will serve the matrix-angular-sdk web client.
|
|
||||||
# Make sure matrix-angular-sdk is installed with pip if web_client is True
|
|
||||||
# and web_client_location is undefined
|
|
||||||
# web_client_location: "/path/to/web/root"
|
# web_client_location: "/path/to/web/root"
|
||||||
|
|
||||||
# The public-facing base URL for the client API (not including _matrix/...)
|
# The public-facing base URL for the client API (not including _matrix/...)
|
||||||
|
@ -320,8 +316,8 @@ class ServerConfig(Config):
|
||||||
-
|
-
|
||||||
# List of resources to host on this listener.
|
# List of resources to host on this listener.
|
||||||
names:
|
names:
|
||||||
- client # The client-server APIs, both v1 and v2
|
- client # The client-server APIs, both v1 and v2
|
||||||
- webclient # The bundled webclient.
|
# - webclient # A web client. Requires web_client_location to be set.
|
||||||
|
|
||||||
# Should synapse compress HTTP responses to clients that support it?
|
# Should synapse compress HTTP responses to clients that support it?
|
||||||
# This should be disabled if running synapse behind a load balancer
|
# This should be disabled if running synapse behind a load balancer
|
||||||
|
@ -348,7 +344,7 @@ class ServerConfig(Config):
|
||||||
x_forwarded: false
|
x_forwarded: false
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
- names: [client, webclient]
|
- names: [client]
|
||||||
compress: true
|
compress: true
|
||||||
- names: [federation]
|
- names: [federation]
|
||||||
compress: false
|
compress: false
|
||||||
|
@ -452,3 +448,19 @@ def read_gc_thresholds(thresholds):
|
||||||
raise ConfigError(
|
raise ConfigError(
|
||||||
"Value of `gc_threshold` must be a list of three integers if set"
|
"Value of `gc_threshold` must be a list of three integers if set"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
NO_MORE_WEB_CLIENT_WARNING = """
|
||||||
|
Synapse no longer includes a web client. To enable a web client, configure
|
||||||
|
web_client_location. To remove this warning, remove 'webclient' from the 'listeners'
|
||||||
|
configuration.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def _warn_if_webclient_configured(listeners):
|
||||||
|
for listener in listeners:
|
||||||
|
for res in listener.get("resources", []):
|
||||||
|
for name in res.get("names", []):
|
||||||
|
if name == 'webclient':
|
||||||
|
logger.warning(NO_MORE_WEB_CLIENT_WARNING)
|
||||||
|
return
|
||||||
|
|
|
@ -69,9 +69,6 @@ REQUIREMENTS = {
|
||||||
}
|
}
|
||||||
|
|
||||||
CONDITIONAL_REQUIREMENTS = {
|
CONDITIONAL_REQUIREMENTS = {
|
||||||
"web_client": {
|
|
||||||
"matrix_angular_sdk>=0.6.8": ["syweb>=0.6.8"],
|
|
||||||
},
|
|
||||||
"email.enable_notifs": {
|
"email.enable_notifs": {
|
||||||
"Jinja2>=2.8": ["Jinja2>=2.8"],
|
"Jinja2>=2.8": ["Jinja2>=2.8"],
|
||||||
"bleach>=1.4.2": ["bleach>=1.4.2"],
|
"bleach>=1.4.2": ["bleach>=1.4.2"],
|
||||||
|
|
Loading…
Reference in a new issue