Major changes: - Add Go backend (backend/) with microservices architecture - Enhanced master-agents-svc: reranker, content-classifier, stealth-crawler, proxy-manager, media-search, fastClassifier, language detection - New web-svc widgets: KnowledgeCard, ProductCard, ProfileCard, VideoCard, UnifiedCard, CardGallery, InlineImageGallery, SourcesPanel, RelatedQuestions - Improved discover-svc with discover-db integration - Docker deployment improvements (Caddyfile, vendor.sh, BUILD.md) - Library-svc: project_id schema migration - Remove deprecated finance-svc and travel-svc - Localization improvements across services Made-with: Cursor
100 lines
3.5 KiB
Bash
Executable File
100 lines
3.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# ============================================================
|
||
# vendor.sh — скачивает ВСЕ npm-зависимости + Docker-образы
|
||
# в vendor/ для оффлайн-билда в изолированной среде.
|
||
#
|
||
# Запускать на машине С ИНТЕРНЕТОМ. Результат:
|
||
# vendor/npm-cache/ — npm cache (все tarballs)
|
||
# vendor/npm-cache.tar.gz — архив npm cache
|
||
# vendor/docker-images.tar — base Docker images
|
||
#
|
||
# Перенести vendor/ на изолированную машину.
|
||
# ============================================================
|
||
set -euo pipefail
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||
VENDOR_DIR="$REPO_ROOT/vendor"
|
||
CACHE_DIR="$VENDOR_DIR/npm-cache"
|
||
|
||
echo "=== GooSeek vendor: скачивание зависимостей ==="
|
||
echo "Репозиторий: $REPO_ROOT"
|
||
echo "Vendor: $VENDOR_DIR"
|
||
echo ""
|
||
|
||
# ----------------------------------------------------------
|
||
# 1. npm cache — все сервисы
|
||
# ----------------------------------------------------------
|
||
rm -rf "$CACHE_DIR"
|
||
mkdir -p "$CACHE_DIR"
|
||
|
||
for pkg in "$REPO_ROOT"/services/*/package.json; do
|
||
svc_dir="$(dirname "$pkg")"
|
||
svc_name="$(basename "$svc_dir")"
|
||
|
||
if [ ! -f "$svc_dir/package-lock.json" ] && [ ! -f "$REPO_ROOT/package-lock.json" ]; then
|
||
echo "--- Пропускаю $svc_name (нет package-lock.json) ---"
|
||
continue
|
||
fi
|
||
|
||
echo "=== npm cache: $svc_name ==="
|
||
(cd "$svc_dir" && npm install --cache "$CACHE_DIR" --prefer-offline --ignore-scripts 2>&1) || {
|
||
echo " WARN: npm install для $svc_name завершился с ошибкой, продолжаем..."
|
||
}
|
||
rm -rf "$svc_dir/node_modules"
|
||
done
|
||
|
||
echo "=== npm cache: workspace root (web-svc, auth-svc) ==="
|
||
(cd "$REPO_ROOT" && npm install --cache "$CACHE_DIR" --prefer-offline --ignore-scripts 2>&1) || {
|
||
echo " WARN: npm install для workspace root завершился с ошибкой, продолжаем..."
|
||
}
|
||
rm -rf "$REPO_ROOT/node_modules"
|
||
for svc_dir in "$REPO_ROOT"/services/*/; do
|
||
rm -rf "$svc_dir/node_modules"
|
||
done
|
||
|
||
echo ""
|
||
echo "=== Упаковка npm cache ==="
|
||
tar -czf "$VENDOR_DIR/npm-cache.tar.gz" -C "$VENDOR_DIR" npm-cache
|
||
NPM_SIZE=$(du -sh "$VENDOR_DIR/npm-cache.tar.gz" | cut -f1)
|
||
echo " npm-cache.tar.gz: $NPM_SIZE"
|
||
|
||
# ----------------------------------------------------------
|
||
# 2. Docker base images
|
||
# ----------------------------------------------------------
|
||
IMAGES=(
|
||
"node:22-alpine"
|
||
"node:20-alpine"
|
||
"redis:7-alpine"
|
||
"searxng/searxng:latest"
|
||
"ghost:6-alpine"
|
||
"mysql:8"
|
||
"postgres:16-alpine"
|
||
"willfarrell/autoheal:latest"
|
||
"unclecode/crawl4ai:latest"
|
||
)
|
||
|
||
echo ""
|
||
echo "=== Docker images: pull ==="
|
||
for img in "${IMAGES[@]}"; do
|
||
echo " pull $img"
|
||
docker pull "$img" 2>&1 | tail -1
|
||
done
|
||
|
||
echo ""
|
||
echo "=== Docker images: save ==="
|
||
docker save -o "$VENDOR_DIR/docker-images.tar" "${IMAGES[@]}"
|
||
DOCKER_SIZE=$(du -sh "$VENDOR_DIR/docker-images.tar" | cut -f1)
|
||
echo " docker-images.tar: $DOCKER_SIZE"
|
||
|
||
# ----------------------------------------------------------
|
||
# Итого
|
||
# ----------------------------------------------------------
|
||
echo ""
|
||
echo "=== Готово ==="
|
||
echo " $VENDOR_DIR/npm-cache.tar.gz ($NPM_SIZE)"
|
||
echo " $VENDOR_DIR/docker-images.tar ($DOCKER_SIZE)"
|
||
echo ""
|
||
echo "Перенесите vendor/ на изолированную машину:"
|
||
echo " scp -r vendor/ user@server:~/GooSeek/vendor/"
|