Files
gooseek/deploy/docker/vendor.sh
home 06fe57c765 feat: Go backend, enhanced search, new widgets, Docker deploy
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
2026-02-27 04:15:32 +03:00

100 lines
3.5 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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/"