Files
iiEsaywebUI/scripts/rebrand_fast.sh
2026-02-19 18:12:09 +00:00

135 lines
5.9 KiB
Bash
Executable File
Raw Permalink 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.
#!/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)"