summaryrefslogtreecommitdiff
path: root/debian/postinst
blob: dfa599dea0fede599552a645d96c5f926dacc6ea (plain)
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
76
77
78
79
80
81
82
83
84
85
86
#!/bin/sh
set -e

. /usr/share/debconf/confmodule

CONDUIT_CONFIG_PATH=/etc/matrix-conduit
CONDUIT_CONFIG_FILE="${CONDUIT_CONFIG_PATH}/conduit.toml"
CONDUIT_DATABASE_PATH=/var/lib/matrix-conduit/

case "$1" in
  configure)
    # Create the `_matrix-conduit` user if it does not exist yet.
    if ! getent passwd _matrix-conduit > /dev/null ; then
      echo 'Adding system user for the Conduit Matrix homeserver' 1>&2
      adduser --system --group --quiet \
        --home "$CONDUIT_DATABASE_PATH" \
        --disabled-login \
        --force-badname \
        _matrix-conduit
    fi

    # Create the database path if it does not exist yet and fix up ownership
    # and permissions.
    mkdir -p "$CONDUIT_DATABASE_PATH"
    chown _matrix-conduit "$CONDUIT_DATABASE_PATH"
    chmod 700 "$CONDUIT_DATABASE_PATH"

    if [ ! -e "$CONDUIT_CONFIG_FILE" ]; then
      # Write the debconf values in the config.
      db_get matrix-conduit/hostname
      CONDUIT_SERVER_NAME="$RET"
      db_get matrix-conduit/address
      CONDUIT_ADDRESS="$RET"
      db_get matrix-conduit/port
      CONDUIT_PORT="$RET"
      mkdir -p "$CONDUIT_CONFIG_PATH"
      cat > "$CONDUIT_CONFIG_FILE" << EOF
[global]
# The server_name is the pretty name of this server. It is used as a suffix for
# user and room ids. Examples: matrix.org, conduit.rs

# The Conduit server needs all /_matrix/ requests to be reachable at
# https://your.server.name/ on port 443 (client-server) and 8448 (federation).

# If that's not possible for you, you can create /.well-known files to redirect
# requests. See
# https://matrix.org/docs/spec/client_server/latest#get-well-known-matrix-client
# and
# https://matrix.org/docs/spec/server_server/r0.1.4#get-well-known-matrix-server
# for more information

server_name = "${CONDUIT_SERVER_NAME}"

# This is the only directory where Conduit will save its data.
database_path = "${CONDUIT_DATABASE_PATH}"
database_backend = "rocksdb"

# The address Conduit will be listening on.
# By default the server listens on address 0.0.0.0. Change this to 127.0.0.1 to
# only listen on the localhost when using a reverse proxy.
address = "${CONDUIT_ADDRESS}"

# The port Conduit will be running on. You need to set up a reverse proxy in
# your web server (e.g. apache or nginx), so all requests to /_matrix on port
# 443 and 8448 will be forwarded to the Conduit instance running on this port
# Docker users: Don't change this, you'll need to map an external port to this.
port = ${CONDUIT_PORT}

# Max size for uploads
max_request_size = 20_000_000 # in bytes

# Enables registration. If set to false, no users can register on this server.
allow_registration = true

allow_federation = true

trusted_servers = ["matrix.org"]

#max_concurrent_requests = 100 # How many requests Conduit sends to other servers at the same time
#log = "warn,state_res=warn,rocket=off,_=off,sled=off"
EOF
    fi
    ;;
esac

#DEBHELPER#