mirror of
https://github.com/element-hq/synapse.git
synced 2024-12-14 11:57:44 +00:00
parent
c58a6e6108
commit
7e433beb65
2 changed files with 17 additions and 4 deletions
|
@ -186,3 +186,7 @@ The following environment variables are supported in this mode:
|
|||
* `SYNAPSE_REPORT_STATS` (mandatory, `yes` or `no`): whether to enable
|
||||
anonymous statistics reporting.
|
||||
* `SYNAPSE_CONFIG_PATH` (mandatory): path to the file to be generated.
|
||||
* `SYNAPSE_DATA_DIR`: where the generated config will put persistent data
|
||||
such as the datatase and media store. Defaults to `/data`.
|
||||
* `UID`, `GID`: the user id and group id to use for creating the data
|
||||
directories. Defaults to `991`, `991`.
|
||||
|
|
|
@ -103,11 +103,12 @@ def generate_config_from_template(environ, ownership):
|
|||
return config_path
|
||||
|
||||
|
||||
def run_generate_config(environ):
|
||||
def run_generate_config(environ, ownership):
|
||||
"""Run synapse with a --generate-config param to generate a template config file
|
||||
|
||||
Args:
|
||||
environ (dict): environment dictionary
|
||||
environ (dict): env var dict
|
||||
ownership (str): "userid:groupid" arg for chmod
|
||||
|
||||
Never returns.
|
||||
"""
|
||||
|
@ -115,6 +116,11 @@ def run_generate_config(environ):
|
|||
if v not in environ:
|
||||
error("Environment variable '%s' is mandatory in `generate` mode." % (v,))
|
||||
|
||||
data_dir = environ.get("SYNAPSE_DATA_DIR", "/data")
|
||||
|
||||
# make sure that synapse has perms to write to the data dir.
|
||||
subprocess.check_output(["chown", ownership, data_dir])
|
||||
|
||||
args = [
|
||||
"python",
|
||||
"-m",
|
||||
|
@ -125,8 +131,11 @@ def run_generate_config(environ):
|
|||
environ["SYNAPSE_REPORT_STATS"],
|
||||
"--config-path",
|
||||
environ["SYNAPSE_CONFIG_PATH"],
|
||||
"--data-directory",
|
||||
data_dir,
|
||||
"--generate-config",
|
||||
]
|
||||
# log("running %s" % (args, ))
|
||||
os.execv("/usr/local/bin/python", args)
|
||||
|
||||
|
||||
|
@ -134,9 +143,9 @@ def main(args, environ):
|
|||
mode = args[1] if len(args) > 1 else None
|
||||
ownership = "{}:{}".format(environ.get("UID", 991), environ.get("GID", 991))
|
||||
|
||||
# In generate mode, generate a configuration, missing keys, then exit
|
||||
# In generate mode, generate a configuration and missing keys, then exit
|
||||
if mode == "generate":
|
||||
return run_generate_config(environ)
|
||||
return run_generate_config(environ, ownership)
|
||||
|
||||
# In normal mode, generate missing keys if any, then run synapse
|
||||
if "SYNAPSE_CONFIG_PATH" in environ:
|
||||
|
|
Loading…
Reference in a new issue