synapse-admin - seq to install and upgrade
This commit is contained in:
3
seqs/synapse-admin.cfg.example
Normal file
3
seqs/synapse-admin.cfg.example
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
readonly sc_synadmLoc="/var/www/synapse-admin"
|
120
seqs/synapse-admin.sh
Executable file
120
seqs/synapse-admin.sh
Executable file
@@ -0,0 +1,120 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
readonly toolName=synapse-admin
|
||||
readonly versionUrl="https://api.github.com/repos/Awesome-Technologies/synapse-admin/releases/latest"
|
||||
|
||||
downUrl=
|
||||
versionNew=
|
||||
versionNow=
|
||||
|
||||
sq_aptOpt=
|
||||
sq_config=0
|
||||
|
||||
seq_config() {
|
||||
## or to use sequencer api with global config file:
|
||||
if initSeqConfig "${seq_configName:?}" "${seq_configTemplate:?}" ; then
|
||||
sq_config=1
|
||||
else
|
||||
# End if no configuration file exists
|
||||
dry || return 1
|
||||
fi
|
||||
|
||||
## Apt cmdline option to suppress user interaction
|
||||
interactive || sq_aptOpt="-y"
|
||||
|
||||
## Disable error checks if external scripts are used
|
||||
## e.g. error on unbound variables
|
||||
#disableErrorCheck
|
||||
|
||||
## Return of non zero value will abort the sequence
|
||||
return 0
|
||||
}
|
||||
|
||||
getVersions() {
|
||||
versionNew=${versionNew:-$(curl --silent "$versionUrl" | grep -Po '"tag_name": "\K.*?(?=")')}
|
||||
downUrl=${downUrl:-$(curl --silent "$versionUrl" | grep -Po '"browser_download_url": "\K.*?(?=")')}
|
||||
versionNow=${versionNow:-$(grep -Po 'REACT_APP_VERSION:"\K.*?(?=")' 2>/dev/null < "${sc_synadmLoc}/static/js/"main.*.js | head -1)}
|
||||
}
|
||||
|
||||
step_1_info() { echo "Status"; }
|
||||
step_1_alias() { echo "status"; }
|
||||
step_1() {
|
||||
getVersions
|
||||
if [[ -z "${versionNow}" ]] ; then
|
||||
info "Version ${versionNew} available to install"
|
||||
elif [[ ${versionNew} == ${versionNow} ]] ; then
|
||||
color green
|
||||
info "Latest version ${versionNew} already installed"
|
||||
else
|
||||
color yellow
|
||||
info "Update to: ${versionNew} available"
|
||||
fi
|
||||
}
|
||||
|
||||
step_10_info() { echo "Install"; }
|
||||
step_10_alias() { echo "install"; }
|
||||
step_10() {
|
||||
local loBackup="${sc_synadmLoc}.bu"
|
||||
local loTemp="/tmp/${toolName}.tar.gz"
|
||||
|
||||
# get download URL
|
||||
getVersions
|
||||
|
||||
if [[ -e "${sc_synadmLoc}" ]]; then
|
||||
exe mv "${sc_synadmLoc}" "${loBackup}"
|
||||
fi
|
||||
|
||||
if ! exe wget -O "${loTemp}" "${downUrl}" ; then
|
||||
info "Download failed"
|
||||
exe mv "${loBackup}" "${sc_synadmLoc}" 2>/dev/null
|
||||
else
|
||||
exe tar -xf "${loTemp}" -C "$(dirname -- "${sc_synadmLoc}")"
|
||||
endReturn -o $? "Extraction failed"
|
||||
exe mv "$(dirname -- "${sc_synadmLoc}")/${toolName}-${versionNew}" "${sc_synadmLoc}"
|
||||
exe chown -R root: "${sc_synadmLoc}"
|
||||
info "Downloaded to ${sc_synadmLoc}"
|
||||
exe rm -rf "${loBackup}" "${loTemp}"
|
||||
fi
|
||||
}
|
||||
|
||||
step_20_info() { echo "Notes"; }
|
||||
step_20_alias() { echo "notes"; }
|
||||
step_20() {
|
||||
color green
|
||||
cat <<NOTES_EOF
|
||||
# Nginx example
|
||||
|
||||
server {
|
||||
listen 8084 ssl http2;
|
||||
listen [::]:8084 ssl http2;
|
||||
server_name _;
|
||||
|
||||
access_log /var/log/nginx/synapse_admin_access.log;
|
||||
error_log /var/log/nginx/synapse_admin_error.log;
|
||||
|
||||
include /etc/nginx/ssl.conf;
|
||||
error_page 497 https://\$host:\$server_port\$request_uri;
|
||||
|
||||
root ${sc_synadmLoc};
|
||||
index index.html;
|
||||
|
||||
location / {
|
||||
try_files \$uri \$uri/ =404;
|
||||
}
|
||||
|
||||
location ~* ^(\/_matrix|\/_synapse\/admin) {
|
||||
allow 192.168.0.0/24;
|
||||
deny all;
|
||||
proxy_pass http://localhost:8008;
|
||||
proxy_set_header X-Forwarded-For \$remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto \$scheme;
|
||||
proxy_set_header Host \$host;
|
||||
}
|
||||
}
|
||||
NOTES_EOF
|
||||
}
|
||||
|
||||
# shellcheck disable=SC2034 # Appears unused
|
||||
readonly sqr_minVersion=16
|
||||
# shellcheck disable=SC1091 # Don't follow this source
|
||||
. /usr/local/bin/sequencer.sh
|
Reference in New Issue
Block a user