Conduit is a simple, fast and reliable chat server powered by Matrix https://conduit.rs
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
3.7 KiB
105 lines
3.7 KiB
#!/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/conduit_db |
|
|
|
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. |
|
if [ ! -d "$CONDUIT_DATABASE_PATH" ]; then |
|
mkdir -p "$CONDUIT_DATABASE_PATH" |
|
chown _matrix-conduit "$CONDUIT_DATABASE_PATH" |
|
fi |
|
|
|
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 name of this server. It is used as a suffix for user |
|
# and room ids. Examples: matrix.org, conduit.rs |
|
# The Conduit server needs to be reachable at https://your.server.name/ on port |
|
# 443 (client-server) and 8448 (federation) OR 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}" |
|
|
|
# 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. |
|
port = ${CONDUIT_PORT} |
|
|
|
# Max size for uploads |
|
max_request_size = 20_000_000 # in bytes |
|
|
|
# Disable registration. No new users will be able to register on this server. |
|
#allow_registration = false |
|
|
|
# Disable encryption, so no new encrypted rooms can be created. |
|
# Note: Existing rooms will continue to work. |
|
#allow_encryption = false |
|
#allow_federation = false |
|
|
|
# Enable jaeger to support monitoring and troubleshooting through jaeger. |
|
#allow_jaeger = false |
|
|
|
#max_concurrent_requests = 100 # How many requests Conduit sends to other servers at the same time |
|
#log = "info,state_res=warn,rocket=off,_=off,sled=off" |
|
#workers = 4 # default: cpu core count * 2 |
|
|
|
## sqlite |
|
|
|
# The amount of memory that the database will use, with the following formula; |
|
# (db_cache_capacity * (sqlite_read_pool_size + 1)), in bytes |
|
#db_cache_capacity = 1073741824 # in bytes, 1024 * 1024 * 1024 |
|
|
|
# How many permanent read connections will be open to the database, |
|
# increase this if you see "creating spillover reader" in your logs. |
|
#sqlite_read_pool_size = 2 # default: max(cpu core count, 1) |
|
|
|
# If the database WAL (conduit.db-wal file) should be cleaned on a timer. |
|
#sqlite_wal_clean_timer = false |
|
|
|
# How many seconds should pass before the WAL clean task should fire. |
|
# Note: Is dependant on sqlite_wal_clean_timer being true. |
|
#sqlite_wal_clean_second_interval = 60 |
|
|
|
# How long the WAL clean task should (in seconds) try to wait while |
|
# getting exclusive access to the database (before giving up). |
|
#sqlite_wal_clean_second_timeout = 2 |
|
EOF |
|
fi |
|
;; |
|
esac |
|
|
|
#DEBHELPER#
|
|
|