259 lines
12 KiB
Markdown
259 lines
12 KiB
Markdown
|
|
# Рабочее решение ребрендинга Open WebUI для iiEasy
|
|||
|
|
|
|||
|
|
## 📋 Обзор
|
|||
|
|
|
|||
|
|
Скрипт `rebrand_safe_final.sh` - это **безопасное и полное решение** для ребрендинга Open WebUI, которое заменяет все логотипы, иконки и удаляет упоминания "Open WebUI" без нарушения функциональности приложения.
|
|||
|
|
|
|||
|
|
## ✅ Что делает скрипт
|
|||
|
|
|
|||
|
|
### 1. Замена логотипов и иконок
|
|||
|
|
|
|||
|
|
Скрипт заменяет **все** типы логотипов и иконок:
|
|||
|
|
|
|||
|
|
#### Основные логотипы:
|
|||
|
|
- ✅ `logo.png` - основной логотип
|
|||
|
|
- ✅ `logo.svg` - SVG версия логотипа
|
|||
|
|
- ✅ `logo-light.svg` / `logo-light.png` - для светлой темы
|
|||
|
|
- ✅ `logo-dark.svg` / `logo-dark.png` - для темной темы
|
|||
|
|
- ✅ `splash.png` - логотип на экране загрузки
|
|||
|
|
- ✅ `splash-dark.png` - логотип на экране загрузки (темная тема)
|
|||
|
|
- ✅ `splash-light.png` - логотип на экране загрузки (светлая тема)
|
|||
|
|
|
|||
|
|
#### Favicon и иконки:
|
|||
|
|
- ✅ `favicon.png` - основная иконка сайта
|
|||
|
|
- ✅ `favicon.ico` - иконка для браузеров
|
|||
|
|
- ✅ `favicon-dark.png` - иконка для темной темы
|
|||
|
|
- ✅ `favicon-light.png` - иконка для светлой темы
|
|||
|
|
- ✅ `apple-touch-icon.png` - иконка для iOS устройств
|
|||
|
|
|
|||
|
|
### 2. Исправление ссылок в шаблонах
|
|||
|
|
|
|||
|
|
Скрипт автоматически исправляет ссылки в HTML/Svelte файлах:
|
|||
|
|
- Заменяет `/static/favicon.ico` → `/static/logo.png`
|
|||
|
|
- Заменяет `/static/favicon-dark.png` → `/static/logo.png`
|
|||
|
|
- Заменяет `/static/splash-dark.png` → `/static/logo.png`
|
|||
|
|
- Заменяет `/static/apple-touch-icon.png` → `/static/logo.png`
|
|||
|
|
- Исправляет `href` и `src` атрибуты в HTML тегах
|
|||
|
|
|
|||
|
|
### 3. Удаление упоминаний "Open WebUI"
|
|||
|
|
|
|||
|
|
- ✅ Удаляет текст "(Open WebUI)" из всех HTML/Svelte шаблонов
|
|||
|
|
- ✅ Исправляет "Войти в iiEasyWeb (Open WebUI)" → "Войти в iiEasyWeb"
|
|||
|
|
- ✅ Заменяет ссылки на документацию: `docs.openwebui.com` → `note.iieasy.ru`
|
|||
|
|
|
|||
|
|
### 4. Удаление элементов интерфейса
|
|||
|
|
|
|||
|
|
- ✅ Удаляет кнопку "Проверить обновления"
|
|||
|
|
- ✅ Удаляет ссылку "(последняя)" на GitHub releases
|
|||
|
|
- ✅ Удаляет "Посмотреть, что нового"
|
|||
|
|
- ✅ Удаляет социальные сети (Discord, Twitter/X, GitHub)
|
|||
|
|
- ✅ Удаляет блок "Помощь" с соцсетями
|
|||
|
|
- ✅ Удаляет блок "Лицензия" полностью
|
|||
|
|
|
|||
|
|
### 5. Исправление API endpoints
|
|||
|
|
|
|||
|
|
- ✅ Заменяет `/api/v1/models/model/profile/image` → `/static/logo.png`
|
|||
|
|
- ✅ Исправляет изображения профиля моделей
|
|||
|
|
|
|||
|
|
## 📁 Структура файлов
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
/home/its/iiEasyWeb/
|
|||
|
|
├── media/
|
|||
|
|
│ ├── logo.png # Основной логотип (обязательно)
|
|||
|
|
│ ├── favicon.png # Favicon (опционально, иначе используется logo.png)
|
|||
|
|
│ ├── logo-light.svg # Логотип для светлой темы (опционально)
|
|||
|
|
│ └── logo-dark.svg # Логотип для темной темы (опционально)
|
|||
|
|
├── scripts/
|
|||
|
|
│ └── rebrand_safe_final.sh # Основной скрипт ребрендинга
|
|||
|
|
└── docker-compose.yml # Docker Compose конфигурация
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🚀 Использование
|
|||
|
|
|
|||
|
|
### Требования
|
|||
|
|
|
|||
|
|
1. Контейнер `open-webui` должен быть запущен
|
|||
|
|
2. Файлы логотипов должны находиться в папке `media/`
|
|||
|
|
3. Минимум требуется `logo.png`
|
|||
|
|
|
|||
|
|
### Запуск скрипта
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/its/iiEasyWeb
|
|||
|
|
sudo ./scripts/rebrand_safe_final.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### После выполнения
|
|||
|
|
|
|||
|
|
1. **Очистите кеш браузера:**
|
|||
|
|
- `Ctrl+Shift+Delete` → Очистить кеш изображений
|
|||
|
|
- Или используйте режим инкогнито: `Ctrl+Shift+N`
|
|||
|
|
|
|||
|
|
2. **Проверьте результат:**
|
|||
|
|
- Откройте `https://odo.iieasy.ru` или `http://localhost:3001`
|
|||
|
|
- Проверьте favicon в браузере
|
|||
|
|
- Проверьте логотип в окне авторизации
|
|||
|
|
- Проверьте темную тему (если используется)
|
|||
|
|
|
|||
|
|
3. **Проверьте статические файлы:**
|
|||
|
|
```bash
|
|||
|
|
# Проверьте, что файлы заменены
|
|||
|
|
curl http://localhost:3001/static/logo.png
|
|||
|
|
curl http://localhost:3001/static/favicon.ico
|
|||
|
|
curl http://localhost:3001/static/splash-dark.png
|
|||
|
|
curl http://localhost:3001/static/apple-touch-icon.png
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🔒 Безопасность
|
|||
|
|
|
|||
|
|
### Почему скрипт безопасен:
|
|||
|
|
|
|||
|
|
1. **Не трогает JavaScript/TypeScript код** - обрабатывает только HTML/Svelte/Python шаблоны
|
|||
|
|
2. **Не изменяет OAuth/Authentik** - исключает файлы связанные с аутентификацией
|
|||
|
|
3. **Не ломает функциональность** - только заменяет статические файлы и текст в шаблонах
|
|||
|
|
4. **Использует безопасные sed команды** - точные замены без агрессивных паттернов
|
|||
|
|
|
|||
|
|
### Что НЕ делает скрипт:
|
|||
|
|
|
|||
|
|
- ❌ Не изменяет скомпилированные JS файлы (может сломать функциональность)
|
|||
|
|
- ❌ Не трогает OAuth/OIDC конфигурацию
|
|||
|
|
- ❌ Не изменяет базу данных
|
|||
|
|
- ❌ Не удаляет критичные системные файлы
|
|||
|
|
|
|||
|
|
## 📝 Логика работы
|
|||
|
|
|
|||
|
|
### Шаг 1: Копирование файлов в статические директории
|
|||
|
|
|
|||
|
|
Скрипт копирует логотипы во все возможные статические директории:
|
|||
|
|
- `/app/web/build/_app/immutable`
|
|||
|
|
- `/app/web/static`
|
|||
|
|
- `/app/web/build`
|
|||
|
|
- `/app/backend/static`
|
|||
|
|
- `/app/static`
|
|||
|
|
- `/app/web/public`
|
|||
|
|
- `/app/public`
|
|||
|
|
|
|||
|
|
### Шаг 2: Замена существующих файлов
|
|||
|
|
|
|||
|
|
Скрипт находит все существующие файлы логотипов и иконок и заменяет их:
|
|||
|
|
```bash
|
|||
|
|
find /app -type f -name "logo.png" -o -name "favicon.png" ...
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Шаг 3: Исправление ссылок в шаблонах
|
|||
|
|
|
|||
|
|
Скрипт ищет файлы с упоминаниями иконок и исправляет ссылки:
|
|||
|
|
```bash
|
|||
|
|
find /app/web -type f -name "*.html" -o -name "*.svelte" | grep -l "favicon"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Шаг 4: Удаление текста и элементов
|
|||
|
|
|
|||
|
|
Скрипт удаляет упоминания "Open WebUI" и элементы интерфейса только из Svelte файлов (безопасно).
|
|||
|
|
|
|||
|
|
### Шаг 5: Перезапуск контейнера
|
|||
|
|
|
|||
|
|
Скрипт автоматически перезапускает контейнер для применения изменений.
|
|||
|
|
|
|||
|
|
## 🔄 Обновление после обновления Open WebUI
|
|||
|
|
|
|||
|
|
После обновления образа Open WebUI нужно запустить скрипт снова:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. Обновите образ
|
|||
|
|
sudo docker compose pull
|
|||
|
|
|
|||
|
|
# 2. Пересоздайте контейнер
|
|||
|
|
sudo docker compose up -d
|
|||
|
|
|
|||
|
|
# 3. Запустите ребрендинг
|
|||
|
|
sudo ./scripts/rebrand_safe_final.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Или используйте скрипт `update.sh`:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
sudo ./scripts/update.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🐛 Решение проблем
|
|||
|
|
|
|||
|
|
### Логотип не изменился
|
|||
|
|
|
|||
|
|
1. **Очистите кеш браузера** - это самая частая причина
|
|||
|
|
2. **Проверьте файлы в контейнере:**
|
|||
|
|
```bash
|
|||
|
|
sudo docker exec open-webui ls -la /app/web/static/logo.png
|
|||
|
|
```
|
|||
|
|
3. **Перезапустите контейнер:**
|
|||
|
|
```bash
|
|||
|
|
sudo docker compose restart open-webui
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Favicon не изменился
|
|||
|
|
|
|||
|
|
1. Проверьте HTML код страницы (View Source)
|
|||
|
|
2. Убедитесь, что ссылка на favicon исправлена
|
|||
|
|
3. Очистите кеш браузера полностью
|
|||
|
|
|
|||
|
|
### Элементы интерфейса не удалились
|
|||
|
|
|
|||
|
|
Элементы могут быть в скомпилированных JS файлах. В этом случае:
|
|||
|
|
1. Проверьте исходные Svelte файлы через `find_settings_elements.sh`
|
|||
|
|
2. Удалите элементы вручную в найденных файлах
|
|||
|
|
3. Или используйте Admin Panel для скрытия элементов
|
|||
|
|
|
|||
|
|
### Контейнер не запускается после ребрендинга
|
|||
|
|
|
|||
|
|
Если скрипт сломал контейнер:
|
|||
|
|
```bash
|
|||
|
|
# Восстановите контейнер
|
|||
|
|
sudo docker compose restart open-webui
|
|||
|
|
|
|||
|
|
# Если не помогло, пересоздайте
|
|||
|
|
sudo docker compose down
|
|||
|
|
sudo docker compose up -d
|
|||
|
|
sudo ./scripts/rebrand_safe_final.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📊 Поддерживаемые файлы
|
|||
|
|
|
|||
|
|
| Тип файла | Обрабатывается | Приоритет |
|
|||
|
|
|-----------|----------------|-----------|
|
|||
|
|
| `logo.png` | ✅ Да | Высокий |
|
|||
|
|
| `favicon.png` | ✅ Да | Высокий |
|
|||
|
|
| `favicon.ico` | ✅ Да | Высокий |
|
|||
|
|
| `favicon-dark.png` | ✅ Да | Средний |
|
|||
|
|
| `apple-touch-icon.png` | ✅ Да | Средний |
|
|||
|
|
| `splash-dark.png` | ✅ Да | Средний |
|
|||
|
|
| `logo-dark.svg` | ✅ Да | Низкий (если есть) |
|
|||
|
|
| `logo-light.svg` | ✅ Да | Низкий (если есть) |
|
|||
|
|
|
|||
|
|
## ✨ Особенности
|
|||
|
|
|
|||
|
|
1. **Автоматическое определение темы** - скрипт автоматически использует `logo-dark.svg` для темной темы, если файл существует
|
|||
|
|
2. **Fallback на logo.png** - если специальных файлов нет, используется основной `logo.png`
|
|||
|
|
3. **Безопасная обработка** - скрипт не трогает критичные файлы и не ломает функциональность
|
|||
|
|
4. **Подробный вывод** - скрипт показывает, что именно обрабатывается
|
|||
|
|
|
|||
|
|
## 📚 Связанные файлы
|
|||
|
|
|
|||
|
|
- `scripts/rebrand_safe_final.sh` - основной скрипт ребрендинга
|
|||
|
|
- `scripts/update.sh` - скрипт для обновления с автоматическим ребрендингом
|
|||
|
|
- `REBRANDING.md` - общая документация по ребрендингу
|
|||
|
|
- `LOGO_SETUP.md` - инструкция по настройке логотипов
|
|||
|
|
|
|||
|
|
## 🎯 Итог
|
|||
|
|
|
|||
|
|
Скрипт `rebrand_safe_final.sh` - это **полное и безопасное решение** для ребрендинга Open WebUI, которое:
|
|||
|
|
|
|||
|
|
- ✅ Заменяет все логотипы и иконки
|
|||
|
|
- ✅ Исправляет ссылки в шаблонах
|
|||
|
|
- ✅ Удаляет упоминания "Open WebUI"
|
|||
|
|
- ✅ Удаляет ненужные элементы интерфейса
|
|||
|
|
- ✅ Не ломает функциональность приложения
|
|||
|
|
- ✅ Работает после обновлений Open WebUI
|
|||
|
|
|
|||
|
|
**Используйте этот скрипт для всех операций ребрендинга!**
|