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

213 lines
12 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 "✓ Удаление ВСЕХ упоминаний '(Open WebUI)'"
echo "✓ Замена ссылок на документацию на note.iieasy.ru"
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"
"/app/backend/static"
)
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
# Заменяем все существующие логотипы
EXISTING_LOGOS=$(docker exec "${CONTAINER_NAME}" find /app -type f \( -name "logo.png" -o -name "logo.svg" \) 2>/dev/null)
if [ -f "$MEDIA_DIR/logo.png" ]; then
echo "$EXISTING_LOGOS" | while read -r logo_file; do
if [ -n "$logo_file" ] && [[ ! "$logo_file" == *"node_modules"* ]]; then
docker cp "$MEDIA_DIR/logo.png" "${CONTAINER_NAME}:${logo_file}" 2>/dev/null || true
fi
done
fi
echo "2. АГРЕССИВНОЕ удаление '(Open WebUI)' из ВСЕХ файлов..."
# Ищем ВО ВСЕХ файлах, включая бинарные (может быть в строковых константах)
docker exec "${CONTAINER_NAME}" find /app -type f \
! -path "*/node_modules/*" ! -path "*/.next/*" \
! -path "*/oauth*" ! -path "*/oidc*" ! -path "*authentik*" ! -path "*openid*" \
! -name "*.pyc" ! -name "*.pyo" ! -name "*.so" \
2>/dev/null | while read file; do
# Проверяем, это текстовый файл
if docker exec "${CONTAINER_NAME}" file "$file" 2>/dev/null | grep -q "text\|JSON\|ASCII"; then
if docker exec "${CONTAINER_NAME}" grep -qE "(Open WebUI)|\(Open WebUI\)|iiEasyWeb.*Open.*WebUI" "$file" 2>/dev/null; then
echo " Удаление из: $file"
# Все возможные варианты
docker exec "${CONTAINER_NAME}" sed -i 's/(Open WebUI)//g' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i 's/\(Open WebUI\)//g' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i 's/ (Open WebUI)//g' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i 's/ \(Open WebUI\)//g' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i 's/iiEasyWeb (Open WebUI)/iiEasyWeb/g' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i 's/iiEasyWeb \(Open WebUI\)/iiEasyWeb/g' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i 's/iiEasyWeb(Open WebUI)/iiEasyWeb/g' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i "s/'(Open WebUI)'//g" "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i 's/"(Open WebUI)"//g' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i 's/`(Open WebUI)`//g' "$file" 2>/dev/null || true
# Удаляем если в составе строки
docker exec "${CONTAINER_NAME}" sed -i 's/Войти в iiEasyWeb (Open WebUI)/Войти в iiEasyWeb/g' "$file" 2>/dev/null || true
fi
fi
done
echo "3. Замена ссылок на документацию на note.iieasy.ru..."
# Заменяем ссылки на документацию
docker exec "${CONTAINER_NAME}" find /app -type f \
! -path "*/node_modules/*" ! -path "*/.next/*" \
! -path "*/oauth*" ! -path "*/oidc*" ! -path "*authentik*" ! -path "*openid*" \
2>/dev/null | while read file; do
if docker exec "${CONTAINER_NAME}" file "$file" 2>/dev/null | grep -q "text\|JSON\|ASCII"; then
if docker exec "${CONTAINER_NAME}" grep -qE "docs\.openwebui\.com|open-webui\.com/docs|github\.com/open-webui/docs" "$file" 2>/dev/null; then
echo " Замена ссылок на документацию в: $file"
docker exec "${CONTAINER_NAME}" sed -i 's|https://docs.openwebui.com|https://note.iieasy.ru|g' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i 's|https://open-webui.com/docs|https://note.iieasy.ru|g' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i 's|https://github.com/open-webui/docs|https://note.iieasy.ru|g' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i 's|docs\.openwebui\.com|note.iieasy.ru|g' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i 's|open-webui\.com/docs|note.iieasy.ru|g' "$file" 2>/dev/null || true
fi
fi
done
echo "4. Замена 'Open WebUI' на 'iiEasyWeb' в тексте..."
docker exec "${CONTAINER_NAME}" find /app/web -type f \
! -path "*/node_modules/*" ! -path "*/.next/*" \
2>/dev/null | while read file; do
if docker exec "${CONTAINER_NAME}" file "$file" 2>/dev/null | grep -q "text\|JSON\|ASCII"; then
if docker exec "${CONTAINER_NAME}" grep -q "Open WebUI" "$file" 2>/dev/null; then
docker exec "${CONTAINER_NAME}" sed -i 's/Open WebUI/iiEasyWeb/g' "$file" 2>/dev/null || true
fi
fi
done
echo "5. Проверка базы данных..."
# Пытаемся найти и исправить в базе данных
DB_PATH="/app/backend/data/webui.db"
if docker exec "${CONTAINER_NAME}" test -f "$DB_PATH" 2>/dev/null; then
echo " Найдена база данных, проверяем..."
if docker exec "${CONTAINER_NAME}" command -v sqlite3 >/dev/null 2>&1; then
# Ищем таблицы с текстовыми полями
TABLES=$(docker exec "${CONTAINER_NAME}" sqlite3 "$DB_PATH" "SELECT name FROM sqlite_master WHERE type='table';" 2>/dev/null)
echo "$TABLES" | while read table; do
if [ -n "$table" ]; then
# Пытаемся найти и заменить в текстовых полях
docker exec "${CONTAINER_NAME}" sqlite3 "$DB_PATH" "UPDATE $table SET value = REPLACE(value, '(Open WebUI)', '') WHERE value LIKE '%(Open WebUI)%';" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sqlite3 "$DB_PATH" "UPDATE $table SET value = REPLACE(value, 'Open WebUI', 'iiEasyWeb') WHERE value LIKE '%Open WebUI%';" 2>/dev/null || true
fi
done
fi
fi
echo "6. Удаление социальных сетей, GitHub и лицензии из футера..."
# Удаляем Discord
docker exec "${CONTAINER_NAME}" find /app -type f \
! -path "*/node_modules/*" ! -path "*/.next/*" \
! -path "*/oauth*" ! -path "*/oidc*" ! -path "*authentik*" ! -path "*openid*" \
2>/dev/null | while read file; do
if docker exec "${CONTAINER_NAME}" file "$file" 2>/dev/null | grep -q "text\|JSON\|ASCII"; then
if docker exec "${CONTAINER_NAME}" grep -qE "discord\.gg|discord\.com|Discord" "$file" 2>/dev/null; then
docker exec "${CONTAINER_NAME}" sed -i '/discord\.gg/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/discord\.com/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/Discord/d' "$file" 2>/dev/null || true
fi
fi
done
# Удаляем Twitter/X
docker exec "${CONTAINER_NAME}" find /app -type f \
! -path "*/node_modules/*" ! -path "*/.next/*" \
! -path "*/oauth*" ! -path "*/oidc*" ! -path "*authentik*" ! -path "*openid*" \
2>/dev/null | while read file; do
if docker exec "${CONTAINER_NAME}" file "$file" 2>/dev/null | grep -q "text\|JSON\|ASCII"; then
if docker exec "${CONTAINER_NAME}" grep -qE "twitter\.com|x\.com|X \(formerly Twitter\)|Twitter|Follow" "$file" 2>/dev/null; then
docker exec "${CONTAINER_NAME}" sed -i '/twitter\.com/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/x\.com/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/X (formerly Twitter)/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/Twitter/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/Follow/d' "$file" 2>/dev/null || true
fi
fi
done
# Удаляем GitHub Repo
docker exec "${CONTAINER_NAME}" find /app -type f \
! -path "*/node_modules/*" ! -path "*/.next/*" \
! -path "*/oauth*" ! -path "*/oidc*" ! -path "*authentik*" ! -path "*openid*" \
2>/dev/null | while read file; do
if docker exec "${CONTAINER_NAME}" file "$file" 2>/dev/null | grep -q "text\|JSON\|ASCII"; then
if docker exec "${CONTAINER_NAME}" grep -qE "Github Repo|GitHub Repo" "$file" 2>/dev/null; then
docker exec "${CONTAINER_NAME}" sed -i '/Github Repo/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/GitHub Repo/d' "$file" 2>/dev/null || true
fi
fi
done
# Удаляем лицензию
docker exec "${CONTAINER_NAME}" find /app -type f \
! -path "*/node_modules/*" ! -path "*/.next/*" \
! -path "*/oauth*" ! -path "*/oidc*" ! -path "*authentik*" ! -path "*openid*" \
2>/dev/null | while read file; do
if docker exec "${CONTAINER_NAME}" file "$file" 2>/dev/null | grep -q "text\|JSON\|ASCII"; then
if docker exec "${CONTAINER_NAME}" grep -qE "лицензионный тарифный план|Перейдите на лицензионный|Лицензия" "$file" 2>/dev/null; then
docker exec "${CONTAINER_NAME}" sed -i '/лицензионный тарифный план/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/Перейдите на лицензионный/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/расширенные возможности/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/настраиваемую тематику/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/фирменный стиль/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/специальную поддержку/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/Лицензия/d' "$file" 2>/dev/null || true
fi
fi
done
echo ""
echo "7. Перезапуск контейнера..."
docker restart "${CONTAINER_NAME}" >/dev/null 2>&1 || {
echo "Предупреждение: Перезапустите вручную: docker restart ${CONTAINER_NAME}"
}
echo ""
echo "=== ФИНАЛЬНЫЙ ребрендинг завершен! ==="
echo ""
echo "Проверьте:"
echo " 1. Откройте https://odo.iieasy.ru"
echo " 2. Должно быть 'Войти в iiEasyWeb' (без '(Open WebUI)')"
echo " 3. Ссылки на документацию должны вести на note.iieasy.ru"
echo ""
echo "ВАЖНО: Очистите кеш браузера (Ctrl+Shift+Delete)"
echo ""
echo "Если '(Open WebUI)' все еще видно, проверьте через Admin Panel:"
echo " Settings → Appearance → Site Title"