update-latest-synapse #20

Open
njeudy wants to merge 2 commits from update-latest-synapse into master
  1. 13
      postgres/hooks/postgres_database-relation-joined
  2. 3
      postgres/lib/common
  3. 7
      synapse/hooks/init
  4. 25
      synapse/lib/common
  5. 9
      synapse/metadata.yml

13
postgres/hooks/postgres_database-relation-joined

@ -22,6 +22,7 @@ USER=$(relation-get user) || {
set -e set -e
## YYY: check that password was not already generated/set for the same user ## YYY: check that password was not already generated/set for the same user
## use session state storage. ## use session state storage.
@ -47,12 +48,20 @@ fi
array_read-0 extensions < <(relation-get extensions 2>/dev/null | shyaml get-values-0) array_read-0 extensions < <(relation-get extensions 2>/dev/null | shyaml get-values-0)
ensure_db_docker_running ensure_db_docker_running
## XXXvlab: should send all these into only one docker... ## XXXvlab: should send all these into only one docker...
if ! db_has_database "$DBNAME"; then if ! db_has_database "$DBNAME"; then
db_create "$DBNAME" || exit 1
INITDB_ARGS=(encoding lc-collate lc-ctype template)
CREATEDB_OPTS=()
for option in "${INITDB_ARGS[@]}"; do
value="$(relation-get "$option" 2>/dev/null)" || true
if [ -n "$value" ]; then
CREATEDB_OPTS+=("--$option=$value")
fi
done
db_create "$DBNAME" "${CREATEDB_OPTS[@]}" || exit 1
if sql=$(relation-get init-sql); then if sql=$(relation-get init-sql); then
ddb "$DBNAME" > /dev/null < <(e "$sql") || exit 1 ddb "$DBNAME" > /dev/null < <(e "$sql") || exit 1
fi fi

3
postgres/lib/common

@ -63,7 +63,8 @@ db_drop () {
db_create () { db_create () {
local dbname="$1" local dbname="$1"
dcmd createdb "$dbname" || return 1
shift
dcmd createdb "$dbname" "$@" || return 1
info "Database '$dbname' created." info "Database '$dbname' created."
} }

7
synapse/hooks/init

@ -12,6 +12,13 @@
. lib/common . lib/common
#if ! [ -f "$HOST_CONFIG_FILE" ]; then
# cfg-init
#fi
#exit 17
# Please note that postgres detect on its own if its datadir needs to be populated # Please note that postgres detect on its own if its datadir needs to be populated
service_def=$(get_compose_service_def "$SERVICE_NAME") || return 1 service_def=$(get_compose_service_def "$SERVICE_NAME") || return 1

25
synapse/lib/common

@ -19,21 +19,21 @@ yaml_opt_flatten() {
CFG_DIR=/etc/synapse CFG_DIR=/etc/synapse
DATA_DIR=/var/lib/synapse
CONFIG_FILE="$CFG_DIR/config.yml"
HOST_CONFIG_FILE="${SERVICE_CONFIGSTORE}$CONFIG_FILE"
DATA_DIR=/data
CONFIG_FILE="$DATA_DIR/homeserver.yaml"
HOST_CONFIG_FILE="${SERVICE_DATASTORE}$CONFIG_FILE"
setup_dirs() { setup_dirs() {
local dirs dir local dirs dir
dirs=("$SERVICE_DATASTORE/var/lib/synapse")
uid_gid=($(docker_get_uid_gid "$SERVICE_NAME" "synapse" "synapse")) || {
dirs=("$SERVICE_DATASTORE/data")
uid_gid=($(docker_get_uid_gid "$SERVICE_NAME" "root" "root")) || {
err "Could not fetch uid/gid on image of service ${DARKYELLOW}$SERVICE_NAME${NORMAL}." err "Could not fetch uid/gid on image of service ${DARKYELLOW}$SERVICE_NAME${NORMAL}."
return 1 return 1
} }
uid="${uid_gid[0]}"
gid="${uid_gid[1]}"
uid="991"
gid="991"
for dir in "${dirs[@]}"; do for dir in "${dirs[@]}"; do
mkdir -p "$dir" mkdir -p "$dir"
find "$dir" \! -uid "$uid" -print0 | while read-0 f; do find "$dir" \! -uid "$uid" -print0 | while read-0 f; do
@ -46,7 +46,8 @@ setup_dirs() {
dirs=( dirs=(
"${SERVICE_CONFIGSTORE}/$CFG_DIR" "${SERVICE_CONFIGSTORE}/$CFG_DIR"
"${SERVICE_DATASTORE}/var/lib/synapse/keys"
"${SERVICE_DATASTORE}/$DATA_DIR/keys"
"${SERVICE_DATASTORE}/$DATA_DIR/media"
) )
for dir in "${dirs[@]}"; do for dir in "${dirs[@]}"; do
mkdir -p "$dir" mkdir -p "$dir"
@ -63,6 +64,8 @@ cfg-merge() {
} }
cfg-base() { cfg-base() {
cat <<EOF > "$HOST_CONFIG_FILE" cat <<EOF > "$HOST_CONFIG_FILE"
@ -72,7 +75,7 @@ cfg-base() {
# pid_file: /var/run/synapse/synapse.pid # pid_file: /var/run/synapse/synapse.pid
web_client: False web_client: False
soft_file_limit: 0 soft_file_limit: 0
log_config: "$CFG_DIR/logging.yml"
log_config: "$DATA_DIR/logging.yml"
## Ports ## Ports
@ -164,7 +167,7 @@ turn_user_lifetime: 1h
trusted_third_party_id_servers: trusted_third_party_id_servers:
- matrix.org - matrix.org
- vector.im - vector.im
suppress_key_server_warning: true
## Metrics ## Metrics
enable_metrics: false enable_metrics: false
@ -206,7 +209,7 @@ app_service_config_files: []
EOF EOF
cat <<EOF > "$SERVICE_CONFIGSTORE$CFG_DIR"/logging.yml
cat <<EOF > "$SERVICE_DATASTORE$DATA_DIR"/logging.yml
version: 1 version: 1
formatters: formatters:

9
synapse/metadata.yml

@ -1,10 +1,10 @@
description: Synapse description: Synapse
maintainer: "Valentin Lab <valentin.lab@kalysto.org>" maintainer: "Valentin Lab <valentin.lab@kalysto.org>"
docker-image: docker.0k.io/synapse:1.0
docker-image: matrixdotorg/synapse:latest
config-resources: config-resources:
- /etc/synapse - /etc/synapse
data-resources: data-resources:
- /var/lib/synapse
- /data
host-resources: host-resources:
- /etc/localtime:ro - /etc/localtime:ro
@ -33,6 +33,11 @@ uses:
auto: summon auto: summon
solves: solves:
database: "main storage" database: "main storage"
default-options:
encoding: UTF-8
lc-collate: C
lc-ctype: C
template: template0
# log-rotate: # log-rotate:
# constraint: recommended # constraint: recommended
# auto: pair # auto: pair

Loading…
Cancel
Save