Files
iiEsaywebUI/scripts/rebrand_fast.sh

135 lines
5.9 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
# БЫСТРЫЙ ребрендинг - оптимизированная версия
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
MEDIA_DIR="$PROJECT_DIR/media"
CONTAINER_NAME="open-webui"
echo "=== БЫСТРЫЙ ребрендинг Open WebUI для iiEasy ==="
echo ""
if ! docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
echo "Ошибка: Контейнер ${CONTAINER_NAME} не запущен."
exit 1
fi
echo "1. Замена логотипов..."
STATIC_DIRS=(
"/app/web/build/_app/immutable"
"/app/web/static"
"/app/web/build"
)
for dir in "${STATIC_DIRS[@]}"; do
if docker exec "${CONTAINER_NAME}" test -d "$dir" 2>/dev/null; then
if [ -f "$MEDIA_DIR/logo.png" ]; then
docker cp "$MEDIA_DIR/logo.png" "${CONTAINER_NAME}:${dir}/logo.png" 2>/dev/null || true
fi
if [ -f "$MEDIA_DIR/favicon.png" ]; then
docker cp "$MEDIA_DIR/favicon.png" "${CONTAINER_NAME}:${dir}/favicon.png" 2>/dev/null || true
docker cp "$MEDIA_DIR/favicon.png" "${CONTAINER_NAME}:${dir}/favicon.ico" 2>/dev/null || true
fi
fi
done
echo "2. БЫСТРОЕ удаление '(Open WebUI)' - поиск только в текстовых файлах..."
# ОПТИМИЗАЦИЯ: Сначала находим файлы с текстом через grep -l (быстро)
# Обрабатываем только нужные типы файлов
FILES=$(docker exec "${CONTAINER_NAME}" find /app -type f \
\( -name "*.html" -o -name "*.svelte" -o -name "*.js" -o -name "*.jsx" -o -name "*.ts" -o -name "*.tsx" -o -name "*.json" -o -name "*.css" -o -name "*.mjs" \) \
! -path "*/node_modules/*" ! -path "*/.next/*" \
! -path "*/oauth*" ! -path "*/oidc*" ! -path "*authentik*" ! -path "*openid*" \
-exec grep -lE "(Open WebUI)|\(Open WebUI\)|iiEasyWeb.*Open.*WebUI" {} \; 2>/dev/null)
if [ -z "$FILES" ]; then
echo " Файлов с '(Open WebUI)' не найдено"
else
COUNT=$(echo "$FILES" | wc -l)
echo " Найдено файлов: $COUNT"
echo "$FILES" | while read file; do
if [ -n "$file" ]; then
# Один sed с несколькими командами - быстрее
docker exec "${CONTAINER_NAME}" sed -i \
-e 's/(Open WebUI)//g' \
-e 's/\(Open WebUI\)//g' \
-e 's/ (Open WebUI)//g' \
-e 's/ \(Open WebUI\)//g' \
-e 's/iiEasyWeb (Open WebUI)/iiEasyWeb/g' \
-e 's/iiEasyWeb \(Open WebUI\)/iiEasyWeb/g' \
-e 's/iiEasyWeb(Open WebUI)/iiEasyWeb/g' \
-e "s/'(Open WebUI)'//g" \
-e 's/"(Open WebUI)"//g' \
-e 's/`(Open WebUI)`//g' \
-e 's/Войти в iiEasyWeb (Open WebUI)/Войти в iiEasyWeb/g' \
"$file" 2>/dev/null || true
fi
done
echo " Обработка завершена"
fi
echo "3. Замена ссылок на документацию..."
DOC_FILES=$(docker exec "${CONTAINER_NAME}" find /app -type f \
\( -name "*.html" -o -name "*.svelte" -o -name "*.js" -o -name "*.jsx" -o -name "*.ts" -o -name "*.tsx" -o -name "*.json" \) \
! -path "*/node_modules/*" ! -path "*/.next/*" \
! -path "*/oauth*" ! -path "*/oidc*" ! -path "*authentik*" ! -path "*openid*" \
-exec grep -lE "docs\.openwebui\.com|open-webui\.com/docs|github\.com/open-webui/docs" {} \; 2>/dev/null)
if [ -z "$DOC_FILES" ]; then
echo " Файлов со ссылками не найдено"
else
echo "$DOC_FILES" | while read file; do
if [ -n "$file" ]; then
docker exec "${CONTAINER_NAME}" sed -i \
-e 's|https://docs.openwebui.com|https://note.iieasy.ru|g' \
-e 's|https://open-webui.com/docs|https://note.iieasy.ru|g' \
-e 's|https://github.com/open-webui/docs|https://note.iieasy.ru|g' \
-e 's|docs\.openwebui\.com|note.iieasy.ru|g' \
-e 's|open-webui\.com/docs|note.iieasy.ru|g' \
"$file" 2>/dev/null || true
fi
done
fi
echo "4. Удаление социальных сетей и лицензии..."
SOCIAL_FILES=$(docker exec "${CONTAINER_NAME}" find /app -type f \
\( -name "*.html" -o -name "*.svelte" -o -name "*.js" -o -name "*.jsx" -o -name "*.ts" -o -name "*.tsx" \) \
! -path "*/node_modules/*" ! -path "*/.next/*" \
! -path "*/oauth*" ! -path "*/oidc*" ! -path "*authentik*" ! -path "*openid*" \
-exec grep -lE "discord|twitter|x\.com|Github Repo|лицензионный|License" {} \; 2>/dev/null)
if [ -z "$SOCIAL_FILES" ]; then
echo " Файлов с соцсетями не найдено"
else
echo "$SOCIAL_FILES" | while read file; do
if [ -n "$file" ]; then
docker exec "${CONTAINER_NAME}" sed -i \
-e '/discord\.gg/d' -e '/discord\.com/d' -e '/Discord/d' \
-e '/twitter\.com/d' -e '/x\.com/d' -e '/X (formerly Twitter)/d' -e '/Twitter/d' -e '/Follow/d' \
-e '/Github Repo/d' -e '/GitHub Repo/d' \
-e '/лицензионный тарифный план/d' -e '/Перейдите на лицензионный/d' \
-e '/расширенные возможности/d' -e '/настраиваемую тематику/d' \
-e '/фирменный стиль/d' -e '/специальную поддержку/d' -e '/Лицензия/d' \
"$file" 2>/dev/null || true
fi
done
fi
echo ""
echo "5. Перезапуск контейнера..."
docker restart "${CONTAINER_NAME}" >/dev/null 2>&1 || {
echo "Предупреждение: Перезапустите вручную: docker restart ${CONTAINER_NAME}"
}
echo ""
echo "=== БЫСТРЫЙ ребрендинг завершен! ==="
echo ""
echo "Очистите кеш браузера (Ctrl+Shift+Delete)"