diff --git a/setup-alpine.sh b/setup-alpine.sh index 86084bd..da59ddb 100644 --- a/setup-alpine.sh +++ b/setup-alpine.sh @@ -1,233 +1 @@ -#!/bin/sh - -REG=git.sys.smsynergy.ru -VERSION=v0.0.1 - -. ./.env - -echo $DOMAIN - -set -e - -echo "==========================================" -echo " Установка системы Panorama Analytics" -echo "==========================================" -echo "" - -# Проверка наличия необходимых утилит -if ! command -v docker >/dev/null 2>&1; then - echo "Установка Docker..." - apk add --no-cache docker docker-compose - rc-update add docker boot - service docker start - sleep 2 -fi - -# Запрос DOMAIN -if [ -z "$DOMAIN" ]; then - echo -n "Введите домен для запуска системы Panorama Analytics (например: example.com): " - read DOMAIN - - if [ -z "$DOMAIN" ]; then - echo "Ошибка: DOMAIN обязателен для продолжения" - exit 1 - fi -else - echo "DOMAIN: $DOMAIN" -fi - -# Запрос токена (для доступа к git registry) -if [ -z "$REG_USER" ]; then - echo -n "Введите логинт для доступа к git registry: " - read REG_USER - - if [ -z "$REG_USER" ]; then - echo "Ошибка: логин обязателен для продолжения" - exit 1 - fi -fi - -if [ -z "$REG_PASS" ]; then - echo -n "Введите пароль для доступа к git registry: " - read REG_PASS - - if [ -z "$REG_PASS" ]; then - echo "Ошибка: пароль обязателен для продолжения" - exit 1 - fi -fi - -echo "" -echo "Настройка окружения..." - -# Создаем .env файл -cat > .env </dev/null || printf "%s:%s" "${REG_USER}" "${REG_PASS}" | base64) - -for COMPOSE_URL in \ - "https://${REG}/cc/deploy/raw/tag/${VERSION}/dev/docker-compose.yml" \ - "https://${REG}/cc/deploy/src/tag/${VERSION}/dev/docker-compose.yml" \ - "https://${REG}/cc/deploy/-/raw/${VERSION}/dev/docker-compose.yml" \ - "https://${REG}/cc/deploy/-/blob/${VERSION}/dev/docker-compose.yml?format=raw"; do - echo "Попытка скачать: ${COMPOSE_URL}" - - # Пробуем с базовой HTTP аутентификацией через заголовок (для BusyBox wget) - echo "Попытка с Basic Auth..." - if wget --header="Authorization: Basic ${AUTH_BASE64}" -O docker-compose.yml "${COMPOSE_URL}" 2>&1 | tee /tmp/wget_output.log; then - if [ -f "docker-compose.yml" ] && [ -s "docker-compose.yml" ]; then - # Проверяем, что это не HTML страница с ошибкой - if head -1 docker-compose.yml | grep -q "services:"; then - echo "docker-compose.yml успешно скачан с URL: ${COMPOSE_URL}" - DOWNLOADED=1 - break - else - echo "Предупреждение: скачанный файл не похож на docker-compose.yml" - cat docker-compose.yml | head -5 - rm -f docker-compose.yml - fi - fi - else - HTTP_CODE=$(grep -o "HTTP/[0-9.]* [0-9]*" /tmp/wget_output.log 2>/dev/null | tail -1 | awk '{print $2}' || echo "unknown") - if [ "$HTTP_CODE" != "unknown" ]; then - echo "HTTP код: ${HTTP_CODE}" - fi - if [ -f /tmp/wget_output.log ]; then - echo "Вывод wget:" - cat /tmp/wget_output.log | tail -3 - fi - fi - - # Пробуем с токеном в заголовке - echo "Попытка с токеном в заголовке..." - if wget --header="Authorization: token ${REG_PASS}" -O docker-compose.yml "${COMPOSE_URL}" 2>&1 | tee /tmp/wget_output.log; then - if [ -f "docker-compose.yml" ] && [ -s "docker-compose.yml" ]; then - if head -1 docker-compose.yml | grep -q "services:"; then - echo "docker-compose.yml успешно скачан с токеном: ${COMPOSE_URL}" - DOWNLOADED=1 - break - else - rm -f docker-compose.yml - fi - fi - fi - - # Пробуем с Bearer токеном - echo "Попытка с Bearer токеном..." - if wget --header="Authorization: Bearer ${REG_PASS}" -O docker-compose.yml "${COMPOSE_URL}" 2>&1 | tee /tmp/wget_output.log; then - if [ -f "docker-compose.yml" ] && [ -s "docker-compose.yml" ]; then - if head -1 docker-compose.yml | grep -q "services:"; then - echo "docker-compose.yml успешно скачан с Bearer токеном: ${COMPOSE_URL}" - DOWNLOADED=1 - break - else - rm -f docker-compose.yml - fi - fi - fi - - # Пробуем с URL содержащим credentials (для некоторых систем) - COMPOSE_URL_WITH_AUTH="https://${REG_USER}:${REG_PASS}@${REG}/cc/deploy/raw/tag/${VERSION}/dev/docker-compose.yml" - if [ "$COMPOSE_URL" = "https://${REG}/cc/deploy/raw/tag/${VERSION}/dev/docker-compose.yml" ]; then - echo "Попытка с credentials в URL..." - if wget -O docker-compose.yml "${COMPOSE_URL_WITH_AUTH}" 2>&1 | tee /tmp/wget_output.log; then - if [ -f "docker-compose.yml" ] && [ -s "docker-compose.yml" ]; then - if head -1 docker-compose.yml | grep -q "services:"; then - echo "docker-compose.yml успешно скачан с credentials в URL" - DOWNLOADED=1 - break - else - rm -f docker-compose.yml - fi - fi - fi - fi - - echo "" -done - -if [ $DOWNLOADED -eq 0 ]; then - echo "" - echo "==========================================" - echo "ОШИБКА: не удалось скачать docker-compose.yml" - echo "==========================================" - echo "Проверьте:" - echo "1. Правильность версии: ${VERSION}" - echo "2. Доступность репозитория: ${REG}/cc/deploy" - echo "3. Правильность логина и пароля" - echo "4. Существование файла: dev/docker-compose.yml в указанной версии" - echo "" - echo "Попробуйте вручную:" - AUTH_B64=$(printf "%s:%s" "${REG_USER}" "${REG_PASS}" | base64 -w 0 2>/dev/null || printf "%s:%s" "${REG_USER}" "${REG_PASS}" | base64) - echo "wget --header=\"Authorization: Basic ${AUTH_B64}\" -O docker-compose.yml \"https://${REG}/cc/deploy/raw/tag/${VERSION}/dev/docker-compose.yml\"" - echo "или:" - echo "wget -O docker-compose.yml \"https://${REG_USER}:${REG_PASS}@${REG}/cc/deploy/raw/tag/${VERSION}/dev/docker-compose.yml\"" - exit 1 -fi - -# Проверка наличия docker-compose.yml -if [ ! -f "docker-compose.yml" ]; then - echo "Ошибка: docker-compose.yml не найден" - exit 1 -fi - -# Запуск docker-compose -echo "" -echo "Запуск контейнеров..." -docker-compose up -d - -if [ $? -ne 0 ]; then - echo "Ошибка: не удалось запустить контейнеры" - exit 1 -fi - -# Ожидание запуска сервисов -echo "" -echo "Ожидание запуска сервисов..." -sleep 5 - -# Проверка статуса -echo "" -echo "Статус контейнеров:" -docker-compose ps - -echo "" -echo "==========================================" -echo " Установка завершена!" -echo "==========================================" -echo "" -echo "Зайдите на http://sah.${DOMAIN} для продолжения" -echo "" - +wget https://git.sys.smsynergy.ru/public/setup/raw/branch/main/dev/docker-compose.yml -O docker-compose.yml \ No newline at end of file