update setup to secure backup download

This commit is contained in:
philc 2024-11-26 14:53:45 +01:00
parent 3c458e66e6
commit 690c207fb9
2 changed files with 20 additions and 9 deletions

View File

@ -26,8 +26,16 @@ location /adminapi/Checkjson.js {
location /setup.sh { location /setup.sh {
alias {{{townpath}}}/adminapi/apxtri/setup/setup.sh; alias {{{townpath}}}/adminapi/apxtri/setup/setup.sh;
} }
location ~ ^/([^/]+)/setup.*\.tar\.gz$ { location ~ ^/([^/]+)/backups/.*\.(objects|pytri|schema)\.tar\.gz$ {
rewrite ^/([^/]+)/(setup.*\.tar\.gz)$ /$1/backups/$2 break; set $secure_code "{{{nginx.secure_accessbackup}}}";
set $code $arg_code;
if ($arg_code = "") {
set $code "";
}
if ($code != $secure_code) {
return 403;
}
rewrite ^/([^/]+)/backups/(.+\.(objects|pytri|schema)\.tar\.gz)$ /$1/backups/$2 break;
root {{{townpath}}}/; root {{{townpath}}}/;
} }
location ~* /objectimg/.*/img/ { location ~* /objectimg/.*/img/ {

View File

@ -26,12 +26,13 @@
tribe=$1 # name of the tribe to install tribe=$1 # name of the tribe to install
url=$2 # url to get the data from OR newtribe url=$2 # url to get the data from OR newtribe
gitrepo=$3 # url to get apxtri code from a git repo (empty if must come from a backup or the url) gitrepo=$3 # url to get apxtri code from a git repo (empty if must come from a backup or the url)
codekey=$4 # code to access backend of the tribe in case it is not newtribe or adminapi tribe
function help { function help {
echo "Need more params, cmd must be $ . setup.sh <tribename> <url to get data> <gitrepourl>" echo "Need more params, cmd must be $ . setup.sh <tribename> <url to get data> <gitrepourl> <codekey to getdata>"
echo "Example1: . setup.sh adminapi https://testwall-ants.ndda.fr https://gitea.ndda.fr/apxtri/adminapi" echo "Example1: . setup.sh adminapi https://app1.smatchit.io https://gitea.ndda.fr/apxtri/adminapi"
echo " install adminapi from the repo (with git accessright) and get data for adminapi from testwall-ants.nnda.fr" echo " install adminapi from the repo (with git accessright) and get data for adminapi from testwall-ants.nnda.fr"
echo "Example2: setup.sh smatchit https://testwall-ants.ndda.fr" echo "Example2: setup.sh smatchit https://admin.smatchit.io 1234"
echo " install smatchit as a copy of testwall-ants.ndda.fr but not from the git (you don't need to have git acess but need to know a specific code)" echo " install smatchit as a copy of testwall-ants.ndda.fr but not from the git (you don't need to have git acess but need to know a specific code)"
echo "Example3: setup.sh smatchit newtribe" echo "Example3: setup.sh smatchit newtribe"
echo " create a new empty tribe" echo " create a new empty tribe"
@ -44,18 +45,18 @@ else
if [ "$url" == "newtribe" ]; then if [ "$url" == "newtribe" ]; then
mkdir -p "${tribe}" mkdir -p "${tribe}"
else else
wget "${url}/${tribe}/setup.objects.tar.gz" wget "${url}/${tribe}/setup.objects.tar.gz?code=${codekey}" -o setup.objects.tar.gz
if [[ $? -ne 0 ]]; then if [[ $? -ne 0 ]]; then
echo "Check the url:$url seems not answer" echo "Check the url:$url that seems not answer, check with tribe's admin if your access code is still valid"
help help
else else
# add 127.0.0.1 town.nation in /ertc/hoss if not already exist to make localhost available # add 127.0.0.1 town.nation in /ertc/hoss if not already exist to make localhost available
#dns=$(basename "$PWD" | sed 's/-/./g') #dns=$(basename "$PWD" | sed 's/-/./g')
#grep -q "^127.0.0.1 $dns" /etc/hosts || echo "127.0.0.1 $dns" | sudo tee -a /etc/hosts > /dev/null #grep -q "^127.0.0.1 $dns" /etc/hosts || echo "127.0.0.1 $dns" | sudo tee -a /etc/hosts > /dev/null
if [ -z "$gitrepo" ]; then if [ -z "$gitrepo" ]; then
wget "${url}/${tribe}/setup.apxtri.tar.gz" wget "${url}/${tribe}/setup.apxtri.tar.gz?code=${codekey}" -o setup.objects.tar.gz
tar -xzf setup.apxtri.tar.gz -C . -p && rm setup.apxtri.tar.gz tar -xzf setup.apxtri.tar.gz -C . -p && rm setup.apxtri.tar.gz
wget "${url}/${tribe}/setup.schema.tar.gz" wget "${url}/${tribe}/setup.schema.tar.gz?code=${codekey}" -o setup.objects.tar.gz
tar -xzf setup.schema.tar.gz -C . -p && rm setup.schema.tar.gz tar -xzf setup.schema.tar.gz -C . -p && rm setup.schema.tar.gz
#wget "${url}/${tribe}/setup.nginx.tar.gz" #wget "${url}/${tribe}/setup.nginx.tar.gz"
#tar -xzf setup.nginx.tar.gz -C . -p && rm setup.nginx.tar.gz #tar -xzf setup.nginx.tar.gz -C . -p && rm setup.nginx.tar.gz
@ -72,6 +73,8 @@ else
mkdir -p "${tribe}/tmp" mkdir -p "${tribe}/tmp"
mkdir -p "${tribe}/logs" mkdir -p "${tribe}/logs"
mkdir -p "${tribe}/logs/nginx" mkdir -p "${tribe}/logs/nginx"
mkdir -p "${tribe}/logs/apxtri"
mkdir -p "${tribe}/logs/pytri"
mkdir -p "${tribe}/backups" mkdir -p "${tribe}/backups"
# add specific dependancy for tribe if apxtri exist # add specific dependancy for tribe if apxtri exist
cd "$tribe" cd "$tribe"