Files
matrix-synapse/abra.sh
2026-04-09 11:48:25 +02:00

102 lines
3.1 KiB
Bash

export DISCORD_BRIDGE_YAML_VERSION=v2
export ENTRYPOINT_CONF_VERSION=v3
export HOMESERVER_YAML_VERSION=v36
export LOG_CONFIG_VERSION=v2
export SHARED_SECRET_AUTH_VERSION=v2
export SIGNAL_BRIDGE_YAML_VERSION=v6
export TELEGRAM_BRIDGE_YAML_VERSION=v6
export NGINX_CONFIG_VERSION=v13
export WK_SERVER_VERSION=v1
export WK_CLIENT_VERSION=v2
export MAS_CONFIG_VERSION=v1
export PG_BACKUP_VERSION=v2
export ADMIN_CONFIG_VERSION=v1
ensure_mas_database () {
if ! psql -U synapse -d postgres -v ON_ERROR_STOP=1 -Atqc "SELECT 1 FROM pg_database WHERE datname = 'mas'" | grep -qx 1
then
psql -U synapse -d postgres -v ON_ERROR_STOP=1 -c "CREATE DATABASE mas OWNER synapse"
fi
}
# Local helper: fetch homeserver.yaml from app, push to mas, then syn2mas check + dry-run.
prepare_mas_migration () {
local hs_local syn_cfg
syn_cfg=/tmp/homeserver.yaml
cleanup_prepare_mas_migration() {
rm -f "homeserver.yaml"
}
trap cleanup_prepare_mas_migration EXIT
echo "Fetching /data/homeserver.yaml from app to homeserver.yaml (abra app run … cat)..."
if ! abra app run -t "$DOMAIN" app cat /data/homeserver.yaml > "homeserver.yaml"
then
return 1
fi
if [ ! -s "homeserver.yaml" ]; then
echo "Error: fetched homeserver.yaml is empty." >&2
return 1
fi
echo "Copying into mas:/tmp"
abra app cp -C "$DOMAIN" "homeserver.yaml" "mas:/tmp" || return 1
echo "Running mas-cli syn2mas check..."
abra app run -t "$DOMAIN" mas -- mas-cli syn2mas check \
--config /etc/mas/config.yaml \
--synapse-config "$syn_cfg" || return 1
echo "Running mas-cli syn2mas migrate --dry-run..."
abra app run -t "$DOMAIN" mas -- mas-cli syn2mas migrate \
--config /etc/mas/config.yaml \
--synapse-config "$syn_cfg" \
--dry-run || return 1
trap - EXIT
cleanup_prepare_mas_migration
}
set_admin () {
admin=akadmin
if [ -n "$1" ]
then
admin=$1
fi
psql -U synapse -c "UPDATE users SET admin = 1 WHERE name = '@$admin:$DOMAIN'";
}
set_bridge_tokens() {
if [ -z "$1" ]; then
echo "Error: Missing parameter. Usage: set_bridge_tokens <BRIDGETYPE>"
return 1
fi
BRIDGETYPE=$1
echo "retrieve tokens from registration.yaml..."
output=$(abra app run $DOMAIN app cat /${BRIDGETYPE}-data/registration.yaml)
if [ $? -ne 0 ]; then
echo "Error: Failed to retrieve registration.yaml for ${BRIDGETYPE} bridge:"
echo "$output"
return 1
fi
hs_token=$(echo "$output" | sed -n 's/^hs_token:[[:space:]]*\(.*\)$/\1/p')
as_token=$(echo "$output" | sed -n 's/^as_token:[[:space:]]*\(.*\)$/\1/p')
echo "HS Token: $hs_token"
echo "AS Token: $as_token"
echo "UNDEPLOY $DOMAIN?"
abra app undeploy $DOMAIN
echo "Replacing tokens:"
abra app secret rm $DOMAIN ${BRIDGETYPE}_as_token
abra app secret insert $DOMAIN ${BRIDGETYPE}_as_token v1 $as_token
abra app secret rm $DOMAIN ${BRIDGETYPE}_hs_token
abra app secret insert $DOMAIN ${BRIDGETYPE}_hs_token v1 $hs_token
echo "Redeploying $DOMAIN..."
abra app deploy -n $DOMAIN
}