Merge pull request #5524 from matrix-org/rav/new_cmdline_options
Add --data-dir and --open-private-ports options.
This commit is contained in:
commit
4ac7ef4b67
|
@ -0,0 +1 @@
|
||||||
|
Add --data-dir and --open-private-ports options.
|
|
@ -213,7 +213,7 @@ listeners:
|
||||||
- names: [client, federation]
|
- names: [client, federation]
|
||||||
compress: false
|
compress: false
|
||||||
|
|
||||||
# example additonal_resources:
|
# example additional_resources:
|
||||||
#
|
#
|
||||||
#additional_resources:
|
#additional_resources:
|
||||||
# "/_matrix/my/custom/endpoint":
|
# "/_matrix/my/custom/endpoint":
|
||||||
|
|
|
@ -150,6 +150,7 @@ class Config(object):
|
||||||
server_name,
|
server_name,
|
||||||
generate_secrets=False,
|
generate_secrets=False,
|
||||||
report_stats=None,
|
report_stats=None,
|
||||||
|
open_private_ports=False,
|
||||||
):
|
):
|
||||||
"""Build a default configuration file
|
"""Build a default configuration file
|
||||||
|
|
||||||
|
@ -173,6 +174,9 @@ class Config(object):
|
||||||
report_stats (bool|None): Initial setting for the report_stats setting.
|
report_stats (bool|None): Initial setting for the report_stats setting.
|
||||||
If None, report_stats will be left unset.
|
If None, report_stats will be left unset.
|
||||||
|
|
||||||
|
open_private_ports (bool): True to leave private ports (such as the non-TLS
|
||||||
|
HTTP listener) open to the internet.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
str: the yaml config file
|
str: the yaml config file
|
||||||
"""
|
"""
|
||||||
|
@ -185,6 +189,7 @@ class Config(object):
|
||||||
server_name=server_name,
|
server_name=server_name,
|
||||||
generate_secrets=generate_secrets,
|
generate_secrets=generate_secrets,
|
||||||
report_stats=report_stats,
|
report_stats=report_stats,
|
||||||
|
open_private_ports=open_private_ports,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -290,6 +295,23 @@ class Config(object):
|
||||||
" config file."
|
" config file."
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
generate_group.add_argument(
|
||||||
|
"--data-directory",
|
||||||
|
metavar="DIRECTORY",
|
||||||
|
help=(
|
||||||
|
"Specify where data such as the media store and database file should be"
|
||||||
|
" stored. Defaults to the current working directory."
|
||||||
|
),
|
||||||
|
)
|
||||||
|
generate_group.add_argument(
|
||||||
|
"--open-private-ports",
|
||||||
|
action="store_true",
|
||||||
|
help=(
|
||||||
|
"Leave private ports (such as the non-TLS HTTP listener) open to the"
|
||||||
|
" internet. Do not use this unless you know what you are doing."
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
config_args, remaining_args = config_parser.parse_known_args(argv)
|
config_args, remaining_args = config_parser.parse_known_args(argv)
|
||||||
|
|
||||||
config_files = find_config_files(search_paths=config_args.config_path)
|
config_files = find_config_files(search_paths=config_args.config_path)
|
||||||
|
@ -323,6 +345,12 @@ class Config(object):
|
||||||
if not cls.path_exists(config_path):
|
if not cls.path_exists(config_path):
|
||||||
print("Generating config file %s" % (config_path,))
|
print("Generating config file %s" % (config_path,))
|
||||||
|
|
||||||
|
if config_args.data_directory:
|
||||||
|
data_dir_path = config_args.data_directory
|
||||||
|
else:
|
||||||
|
data_dir_path = os.getcwd()
|
||||||
|
data_dir_path = os.path.abspath(data_dir_path)
|
||||||
|
|
||||||
server_name = config_args.server_name
|
server_name = config_args.server_name
|
||||||
if not server_name:
|
if not server_name:
|
||||||
raise ConfigError(
|
raise ConfigError(
|
||||||
|
@ -336,6 +364,7 @@ class Config(object):
|
||||||
server_name=server_name,
|
server_name=server_name,
|
||||||
report_stats=(config_args.report_stats == "yes"),
|
report_stats=(config_args.report_stats == "yes"),
|
||||||
generate_secrets=True,
|
generate_secrets=True,
|
||||||
|
open_private_ports=config_args.open_private_ports,
|
||||||
)
|
)
|
||||||
|
|
||||||
if not cls.path_exists(config_dir_path):
|
if not cls.path_exists(config_dir_path):
|
||||||
|
|
|
@ -327,7 +327,9 @@ class ServerConfig(Config):
|
||||||
def has_tls_listener(self):
|
def has_tls_listener(self):
|
||||||
return any(l["tls"] for l in self.listeners)
|
return any(l["tls"] for l in self.listeners)
|
||||||
|
|
||||||
def generate_config_section(self, server_name, data_dir_path, **kwargs):
|
def generate_config_section(
|
||||||
|
self, server_name, data_dir_path, open_private_ports, **kwargs
|
||||||
|
):
|
||||||
_, bind_port = parse_and_validate_server_name(server_name)
|
_, bind_port = parse_and_validate_server_name(server_name)
|
||||||
if bind_port is not None:
|
if bind_port is not None:
|
||||||
unsecure_port = bind_port - 400
|
unsecure_port = bind_port - 400
|
||||||
|
@ -340,6 +342,13 @@ class ServerConfig(Config):
|
||||||
# Bring DEFAULT_ROOM_VERSION into the local-scope for use in the
|
# Bring DEFAULT_ROOM_VERSION into the local-scope for use in the
|
||||||
# default config string
|
# default config string
|
||||||
default_room_version = DEFAULT_ROOM_VERSION
|
default_room_version = DEFAULT_ROOM_VERSION
|
||||||
|
|
||||||
|
unsecure_http_binding = "port: %i\n tls: false" % (unsecure_port,)
|
||||||
|
if not open_private_ports:
|
||||||
|
unsecure_http_binding += (
|
||||||
|
"\n bind_addresses: ['::1', '127.0.0.1']"
|
||||||
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
"""\
|
"""\
|
||||||
## Server ##
|
## Server ##
|
||||||
|
@ -535,9 +544,7 @@ class ServerConfig(Config):
|
||||||
# If you plan to use a reverse proxy, please see
|
# If you plan to use a reverse proxy, please see
|
||||||
# https://github.com/matrix-org/synapse/blob/master/docs/reverse_proxy.rst.
|
# https://github.com/matrix-org/synapse/blob/master/docs/reverse_proxy.rst.
|
||||||
#
|
#
|
||||||
- port: %(unsecure_port)s
|
- %(unsecure_http_binding)s
|
||||||
tls: false
|
|
||||||
bind_addresses: ['::1', '127.0.0.1']
|
|
||||||
type: http
|
type: http
|
||||||
x_forwarded: true
|
x_forwarded: true
|
||||||
|
|
||||||
|
@ -545,7 +552,7 @@ class ServerConfig(Config):
|
||||||
- names: [client, federation]
|
- names: [client, federation]
|
||||||
compress: false
|
compress: false
|
||||||
|
|
||||||
# example additonal_resources:
|
# example additional_resources:
|
||||||
#
|
#
|
||||||
#additional_resources:
|
#additional_resources:
|
||||||
# "/_matrix/my/custom/endpoint":
|
# "/_matrix/my/custom/endpoint":
|
||||||
|
|
Loading…
Reference in New Issue