#!/bin/bash # Скрипт для постоянной замены логотипов через volume монтирование # Этот скрипт копирует файлы в volume, который сохраняется между перезапусками 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 "=== Применение логотипов (постоянное решение) ===" # Проверка наличия контейнера if ! docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then echo "Ошибка: Контейнер ${CONTAINER_NAME} не запущен." exit 1 fi echo "1. Поиск существующих favicon и logo файлов..." # Находим все существующие favicon и logo файлы EXISTING_FAVICONS=$(docker exec "${CONTAINER_NAME}" find /app -type f \( -name "favicon.png" -o -name "favicon.ico" -o -name "favicon.svg" -o -name "favicon-96x96.png" \) 2>/dev/null | head -20) EXISTING_LOGOS=$(docker exec "${CONTAINER_NAME}" find /app -type f \( -name "logo.png" -o -name "logo.svg" \) 2>/dev/null | head -20) echo " Найдено favicon файлов: $(echo "$EXISTING_FAVICONS" | grep -v '^$' | wc -l)" echo " Найдено logo файлов: $(echo "$EXISTING_LOGOS" | grep -v '^$' | wc -l)" # Заменяем все найденные favicon файлы if [ -f "$MEDIA_DIR/favicon.png" ]; then echo "2. Замена всех favicon файлов на favicon.png..." echo "$EXISTING_FAVICONS" | while read -r favicon_file; do if [ -n "$favicon_file" ]; then echo " → $favicon_file" docker cp "$MEDIA_DIR/favicon.png" "${CONTAINER_NAME}:${favicon_file}" 2>/dev/null || true # Также создаем .ico версию в той же директории favicon_dir=$(dirname "$favicon_file") favicon_name=$(basename "$favicon_file" | sed 's/\.[^.]*$//') if [ "$favicon_name" != "favicon" ]; then docker cp "$MEDIA_DIR/favicon.png" "${CONTAINER_NAME}:${favicon_dir}/favicon.ico" 2>/dev/null || true fi fi done fi # Заменяем все найденные logo файлы if [ -f "$MEDIA_DIR/logo.png" ]; then echo "3. Замена всех logo файлов на logo.png..." echo "$EXISTING_LOGOS" | while read -r logo_file; do if [ -n "$logo_file" ]; then echo " → $logo_file" docker cp "$MEDIA_DIR/logo.png" "${CONTAINER_NAME}:${logo_file}" 2>/dev/null || true # Также создаем .svg версию logo_dir=$(dirname "$logo_file") docker cp "$MEDIA_DIR/logo.png" "${CONTAINER_NAME}:${logo_dir}/logo.svg" 2>/dev/null || true fi done fi echo "" echo "4. Перезапуск контейнера для применения изменений..." docker restart "${CONTAINER_NAME}" >/dev/null 2>&1 || { echo "Предупреждение: Не удалось перезапустить контейнер автоматически." echo "Перезапустите вручную: docker restart ${CONTAINER_NAME}" } echo "" echo "=== Готово! ===" echo "" echo "ВАЖНО: Логотипы применены, но они могут вернуться после перезапуска контейнера." echo "" echo "Для ПОСТОЯННОГО решения используйте Admin Panel Open WebUI:" echo " 1. Откройте https://odo.iieasy.ru или http://localhost:3001" echo " 2. Войдите как администратор" echo " 3. Settings → Appearance → Logo" echo " 4. Загрузите logo.png и favicon.png из папки media/" echo " 5. Сохраните - настройки сохранятся в базе данных" echo "" echo "Или запустите этот скрипт после каждого перезапуска контейнера."