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

127 lines
5.4 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.
#!/bin/bash
# ОЧЕНЬ АККУРАТНЫЙ ребрендинг Open WebUI для iiEasy
# Только безопасные замены текста, НЕ трогает код
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 "⚠ Только безопасные замены текста в интерфейсе"
echo "⚠ Код Python/JS НЕ изменяется"
echo "⚠ OAuth/Authentik полностью защищены"
echo ""
# Проверка наличия контейнера
if ! docker ps -a --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
echo "Ошибка: Контейнер ${CONTAINER_NAME} не найден."
exit 1
fi
if ! docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
echo "Ошибка: Контейнер ${CONTAINER_NAME} не запущен."
exit 1
fi
echo "1. Замена логотипов и favicon..."
STATIC_DIRS=(
"/app/web/build/_app/immutable"
"/app/web/static"
"/app/web/build"
)
STATIC_DIR=""
for dir in "${STATIC_DIRS[@]}"; do
if docker exec "${CONTAINER_NAME}" test -d "$dir" 2>/dev/null; then
STATIC_DIR="$dir"
break
fi
done
if [ -z "$STATIC_DIR" ]; then
FAVICON_PATH=$(docker exec "${CONTAINER_NAME}" find /app/web -name "favicon.png" -o -name "favicon.ico" 2>/dev/null | head -1)
if [ -n "$FAVICON_PATH" ]; then
STATIC_DIR=$(dirname "$FAVICON_PATH")
else
STATIC_DIR="/app/web/build/_app/immutable"
fi
fi
# Копирование логотипов
if [ -f "$MEDIA_DIR/logo.png" ]; then
docker cp "$MEDIA_DIR/logo.png" "${CONTAINER_NAME}:${STATIC_DIR}/logo.png" 2>/dev/null || true
fi
if [ -f "$MEDIA_DIR/favicon.png" ]; then
docker cp "$MEDIA_DIR/favicon.png" "${CONTAINER_NAME}:${STATIC_DIR}/favicon.png" 2>/dev/null || true
docker cp "$MEDIA_DIR/favicon.png" "${CONTAINER_NAME}:${STATIC_DIR}/favicon.ico" 2>/dev/null || true
fi
echo "2. Замена текста 'Open WebUI' на 'iiEasyWeb' ТОЛЬКО в HTML/текстовых строках..."
# ТОЛЬКО фронтенд HTML/Svelte файлы - заменяем только в текстовом контенте
docker exec "${CONTAINER_NAME}" find /app/web -type f \( -name "*.html" -o -name "*.svelte" \) \
! -path "*/node_modules/*" ! -path "*/.next/*" ! -path "*/dist/*" \
2>/dev/null | while read file; do
# Заменяем только в текстовом контенте между тегами, не в атрибутах или коде
if docker exec "${CONTAINER_NAME}" grep -q "Open WebUI" "$file" 2>/dev/null; then
echo " HTML/Svelte: $file"
# Заменяем только "Open WebUI" (с заглавными) в тексте, не трогаем код
docker exec "${CONTAINER_NAME}" sed -i 's/>Open WebUI</>iiEasyWeb</g' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i 's/Open WebUI/iiEasyWeb/g' "$file" 2>/dev/null || true
fi
done
echo "3. Удаление '(Open WebUI)' из текста интерфейса..."
# Только удаляем текст в скобках из HTML
docker exec "${CONTAINER_NAME}" find /app/web -type f \( -name "*.html" -o -name "*.svelte" \) \
! -path "*/node_modules/*" ! -path "*/.next/*" ! -path "*/dist/*" \
2>/dev/null | while read file; do
if docker exec "${CONTAINER_NAME}" grep -q "(Open WebUI)" "$file" 2>/dev/null; then
echo " Удаление скобок: $file"
docker exec "${CONTAINER_NAME}" sed -i 's/(Open WebUI)//g' "$file" 2>/dev/null || true
fi
done
echo "4. Удаление 'Powered by Open WebUI' футеров..."
# Только удаляем строки с "Powered by"
docker exec "${CONTAINER_NAME}" find /app/web -type f \( -name "*.html" -o -name "*.svelte" \) \
! -path "*/node_modules/*" ! -path "*/.next/*" ! -path "*/dist/*" \
2>/dev/null | while read file; do
if docker exec "${CONTAINER_NAME}" grep -q "Powered by.*Open WebUI\|powered by.*Open WebUI" "$file" 2>/dev/null; then
echo " Удаление футера: $file"
docker exec "${CONTAINER_NAME}" sed -i '/Powered by.*Open WebUI/d' "$file" 2>/dev/null || true
docker exec "${CONTAINER_NAME}" sed -i '/powered by.*Open WebUI/d' "$file" 2>/dev/null || true
fi
done
echo ""
echo "✓ Изменены ТОЛЬКО текстовые строки в HTML/Svelte"
echo "✓ Код Python/JS НЕ изменялся"
echo "✓ OAuth/Authentik полностью защищены"
echo ""
echo "5. Перезапуск контейнера..."
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. Все должно работать нормально"
echo " 3. Текст 'Open WebUI' заменен на 'iiEasyWeb' в интерфейсе"
echo ""
echo "Если что-то не работает, пересоздайте контейнер:"
echo " sudo docker compose stop open-webui"
echo " sudo docker compose rm -f open-webui"
echo " sudo docker compose up -d open-webui"