docs: Server-Operations — универсальное развёртывание без привязки к домену

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
shop
2026-05-17 13:34:25 +03:00
parent d31a63829c
commit 561fbd22e0
11 changed files with 336 additions and 402 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/shop-root.sh"
if [ ! -d .git ]; then
echo "Ошибка: в $SHOP_ROOT нет .git — нужен полный clone:"
echo " git clone https://git.evilfox.cc/test/shop10.git /opt/shop/shop10"
echo " git clone <URL-репозитория> /opt/shop"
exit 1
fi
+5 -4
View File
@@ -19,10 +19,11 @@ if [ ! -f "$SHOP_ROOT/package.json" ]; then
exit 1
fi
# .env: shop10 или старый /opt/shop
if [ ! -f "$SHOP_ROOT/.env" ] && [ -f /opt/shop/.env ]; then
cp /opt/shop/.env "$SHOP_ROOT/.env"
echo "Скопирован .env из /opt/shop"
# .env в родительском каталоге (если переносили клон)
PARENT_ENV="$(dirname "$SHOP_ROOT")/.env"
if [ ! -f "$SHOP_ROOT/.env" ] && [ -f "$PARENT_ENV" ]; then
cp "$PARENT_ENV" "$SHOP_ROOT/.env"
echo "Скопирован .env из $(dirname "$SHOP_ROOT")"
fi
if [ ! -f "$SHOP_ROOT/.env" ]; then
+11 -5
View File
@@ -2,12 +2,12 @@
# Быстрое развёртывание / обновление на Ubuntu (без Docker)
# sudo bash scripts/quick-deploy-ubuntu.sh
#
# Каталог по умолчанию: /opt/shop/shop10
# Переопределение: SHOP_INSTALL_DIR=/opt/shop/shop10 SHOP_GIT_URL=https://...
# Каталог: SHOP_INSTALL_DIR (по умолчанию /opt/shop)
# URL репозитория: SHOP_GIT_URL (обязателен при первом clone)
set -euo pipefail
INSTALL_DIR="${SHOP_INSTALL_DIR:-/opt/shop/shop10}"
GIT_URL="${SHOP_GIT_URL:-https://git.evilfox.cc/test/shop10.git}"
INSTALL_DIR="${SHOP_INSTALL_DIR:-/opt/shop}"
GIT_URL="${SHOP_GIT_URL:-}"
if [ "$(id -u)" -ne 0 ]; then
echo "Запустите от root: sudo bash scripts/quick-deploy-ubuntu.sh"
@@ -26,7 +26,13 @@ if ! command -v node >/dev/null; then
fi
if [ ! -f "$INSTALL_DIR/package.json" ]; then
echo "Клонирование репозитория..."
if [ -z "$GIT_URL" ]; then
echo "Задайте URL репозитория:"
echo " export SHOP_GIT_URL='https://ваш-forge/user/shop.git'"
echo " sudo SHOP_GIT_URL=\"\$SHOP_GIT_URL\" bash scripts/quick-deploy-ubuntu.sh"
exit 1
fi
echo "Клонирование: $GIT_URL -> $INSTALL_DIR"
mkdir -p "$(dirname "$INSTALL_DIR")"
git clone "$GIT_URL" "$INSTALL_DIR"
fi
+5 -4
View File
@@ -1,6 +1,6 @@
#!/bin/bash
# Обновление на сервере: git pull, npm, restart shop
# bash /opt/shop/shop10/scripts/server-update.sh
# bash "$SHOP_ROOT/scripts/server-update.sh"
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
@@ -11,9 +11,10 @@ echo "=== Shop update: $SHOP_ROOT ==="
if [ ! -d .git ]; then
echo "Ошибка: $SHOP_ROOT не git-репозиторий (нет .git)."
echo "Если код только в /opt/shop/shop10 без git — переустановите:"
echo " mv /opt/shop/shop10 /opt/shop/shop10.bak"
echo " git clone https://git.evilfox.cc/test/shop10.git /opt/shop/shop10"
echo "Если нет .git — клонируйте заново:"
echo " export SHOP_GIT_URL='<URL-репозитория>'"
echo " mv \"$SHOP_ROOT\" \"\${SHOP_ROOT}.bak\""
echo " git clone \"\$SHOP_GIT_URL\" \"$SHOP_ROOT\""
exit 1
fi
+7 -6
View File
@@ -6,16 +6,16 @@ _resolve_shop_root() {
for d in \
"${SHOP_ROOT:-}" \
"$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" \
"/opt/shop/shop10" \
"/opt/shop"; do
"/opt/shop" \
"/opt/shop/app"; do
[ -z "$d" ] && continue
[ -f "${d}/package.json" ] && [ -d "${d}/.git" ] && SHOP_ROOT="$d" && return 0
done
for d in \
"${SHOP_ROOT:-}" \
"$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" \
"/opt/shop/shop10" \
"/opt/shop"; do
"/opt/shop" \
"/opt/shop/app"; do
[ -z "$d" ] && continue
[ -f "${d}/package.json" ] && SHOP_ROOT="$d" && return 0
done
@@ -24,8 +24,9 @@ _resolve_shop_root() {
if ! _resolve_shop_root; then
echo "Ошибка: не найден каталог Shop (нет package.json)."
echo " git clone https://git.evilfox.cc/test/shop10.git /opt/shop/shop10"
echo " SHOP_ROOT=/opt/shop/shop10 bash scripts/server-update.sh"
echo " export SHOP_ROOT=/opt/shop # каталог с package.json"
echo " git clone <URL-репозитория> \"\$SHOP_ROOT\""
echo " SHOP_ROOT=\$SHOP_ROOT bash scripts/server-update.sh"
exit 1
fi