summary refs log tree commit diff
path: root/contrib/docker/rob/rootfs/etc/service/synapse/run
blob: dd797d3ef9d258726cd2ed39d590cee468ef7f35 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/bin/bash
#
# Copyright 2017 Vector Creations Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -e

: ${CONFIG_PATH:="/synapse/config"}
: ${POSTGRES_DATABASE:="synapse"}
: ${POSTGRES_HOST:="postgres"}
: ${POSTGRES_USER:="postgres"}
: ${REPORT_STATS:="yes"}
: ${SERVER_NAME:="localhost"}

DATABASE_CONFIG_PATH="${CONFIG_PATH}/database.yaml"
HOMESERVER_CONFIG_PATH="${CONFIG_PATH}/homeserver.yaml"
SYNAPSE_COMMAND="python -m synapse.app.homeserver"

. /synapse/bin/activate
cd /synapse

if [[ -n "${GENERATE_CONFIG}" ]]; then
    ${SYNAPSE_COMMAND} \
        --server-name ${SERVER_NAME} \
        --config-path ${HOMESERVER_CONFIG_PATH} \
        --generate-config \
        --report-stats=${REPORT_STATS}

    if [[ -f "${DATABASE_CONFIG_PATH}" ]]; then
        echo "Config file '${DATABASE_CONFIG_PATH}' already exists. Remove it if you want it to be generated."
    else
        echo "Generating ${DATABASE_CONFIG_PATH}..."
        if [[ -n "${POSTGRES_PASSWORD}" ]]; then
            (cat > ${DATABASE_CONFIG_PATH}) <<EOF
database:
  name: psycopg2
  args:
    host: ${POSTGRES_HOST}
    user: ${POSTGRES_USER}
    password: ${POSTGRES_PASSWORD}
    database: ${POSTGRES_DATABASE}
    cp_min: 5
    cp_max: 10
EOF
        else
            (cat > ${DATABASE_CONFIG_PATH}) <<EOF
database:
  name: "sqlite3"
  args:
    database: "/synapse/data/homeserver.db"
EOF
        fi
        cat ${DATABASE_CONFIG_PATH} | grep -v password
    fi

    exit 0
fi

COMMAND="${SYNAPSE_COMMAND} --config-path ${HOMESERVER_CONFIG_PATH}"
if [[ -r "${DATABASE_CONFIG_PATH}" ]]; then
    COMMAND="${COMMAND} --config-path ${DATABASE_CONFIG_PATH}"
fi

exec ${COMMAND}