Add project and deployment instruction (docs/DEPLOYMENT.md)
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
258
REBRAND_SOLUTION.md
Normal file
258
REBRAND_SOLUTION.md
Normal file
@@ -0,0 +1,258 @@
|
||||
# Рабочее решение ребрендинга 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
|
||||
|
||||
**Используйте этот скрипт для всех операций ребрендинга!**
|
||||
Reference in New Issue
Block a user