feat: mirror repo on api.savsis.xyz as primary update source, github as fallback
install.sh clones from the mirror first (falls back to github.com if unreachable); mbs update fetches origin (mirror) first, falls back to a github remote if that fetch fails. Mirror itself is a bare repo on финка2, kept in sync from GitHub every 10 min via an authenticated token (needed because that box's IP gets rate-limited/blocked by GitHub for anonymous git clones). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
36fa7d55b0
commit
2604c2dfe7
2 changed files with 24 additions and 5 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
set -e
|
set -e
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
|
MIRROR_URL="https://api.savsis.xyz/git/mbs-panel.git/"
|
||||||
REPO_URL="https://github.com/devsavsis/mbs-panel.git"
|
REPO_URL="https://github.com/devsavsis/mbs-panel.git"
|
||||||
APP_DIR="/opt/mbs-panel"
|
APP_DIR="/opt/mbs-panel"
|
||||||
WEBROOT="/var/www/certbot"
|
WEBROOT="/var/www/certbot"
|
||||||
|
|
@ -82,7 +83,12 @@ echo "клонируем репозиторий в $APP_DIR..."
|
||||||
if [ -d "$APP_DIR/.git" ]; then
|
if [ -d "$APP_DIR/.git" ]; then
|
||||||
retry git -C "$APP_DIR" pull --quiet
|
retry git -C "$APP_DIR" pull --quiet
|
||||||
else
|
else
|
||||||
|
if ! git clone --quiet "$MIRROR_URL" "$APP_DIR" 2>/dev/null; then
|
||||||
|
echo "зеркало недоступно, клонирую напрямую с GitHub..."
|
||||||
retry git clone --quiet "$REPO_URL" "$APP_DIR"
|
retry git clone --quiet "$REPO_URL" "$APP_DIR"
|
||||||
|
git -C "$APP_DIR" remote set-url origin "$MIRROR_URL"
|
||||||
|
fi
|
||||||
|
git -C "$APP_DIR" remote add github "$REPO_URL" 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd "$APP_DIR"
|
cd "$APP_DIR"
|
||||||
|
|
|
||||||
21
mbs
21
mbs
|
|
@ -13,7 +13,7 @@ mbs — управление MBS Panel
|
||||||
mbs restart перезапустить всё (bot, api, xray, reload nginx)
|
mbs restart перезапустить всё (bot, api, xray, reload nginx)
|
||||||
mbs logs [bot|api|xray] последние строки лога (по умолчанию api)
|
mbs logs [bot|api|xray] последние строки лога (по умолчанию api)
|
||||||
mbs domain показать текущий домен панели
|
mbs domain показать текущий домен панели
|
||||||
mbs update обновить код с GitHub и перезапустить (не трогает .env и базу)
|
mbs update обновить код (зеркало api.savsis.xyz, потом GitHub) и перезапустить (не трогает .env и базу)
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -58,17 +58,30 @@ cmd_domain() {
|
||||||
cmd_update() {
|
cmd_update() {
|
||||||
cd "$APP_DIR"
|
cd "$APP_DIR"
|
||||||
echo "проверяю обновления..."
|
echo "проверяю обновления..."
|
||||||
git fetch --quiet origin main
|
local remote="origin"
|
||||||
|
if ! git fetch --quiet origin main 2>/dev/null; then
|
||||||
|
if git remote | grep -q '^github$'; then
|
||||||
|
echo "зеркало недоступно, пробую github..."
|
||||||
|
if ! git fetch --quiet github main 2>/dev/null; then
|
||||||
|
echo "не удалось получить обновления ни с зеркала, ни с github"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
remote="github"
|
||||||
|
else
|
||||||
|
echo "не удалось получить обновления"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
local before after
|
local before after
|
||||||
before=$(git rev-parse HEAD)
|
before=$(git rev-parse HEAD)
|
||||||
after=$(git rev-parse origin/main)
|
after=$(git rev-parse "$remote/main")
|
||||||
if [ "$before" = "$after" ]; then
|
if [ "$before" = "$after" ]; then
|
||||||
echo "уже последняя версия ($before)."
|
echo "уже последняя версия ($before)."
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
echo "текущая: $before"
|
echo "текущая: $before"
|
||||||
echo "новая: $after"
|
echo "новая: $after"
|
||||||
if ! git merge --ff-only origin/main --quiet; then
|
if ! git merge --ff-only "$remote/main" --quiet; then
|
||||||
echo "не вышло быстро обновиться (похоже, файлы правились вручную на сервере) — разберись руками: git status"
|
echo "не вышло быстро обновиться (похоже, файлы правились вручную на сервере) — разберись руками: git status"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue