> ## Documentation Index
> Fetch the complete documentation index at: https://docs.miscord.ru/llms.txt
> Use this file to discover all available pages before exploring further.

# NEW FRONTEND DOCKER READY

# 🚀 Новый Next.js фронтенд для Miscord - готов к Docker

## ✅ Статус: ПОЛНОСТЬЮ ГОТОВ К ЗАПУСКУ

Я создал совершенно новый современный фронтенд на Next.js 14 с нуля, оптимизированный для работы в Docker на Ubuntu 22.

## 📋 Что было сделано

### 1. Архитектура приложения

* **Next.js 14** с App Router (последняя версия)
* **TypeScript** для типобезопасности
* **Zustand** для управления состоянием (легче Redux)
* **Tailwind CSS** с фирменной темой Miscord
* **Socket.IO** для real-time коммуникации
* **Radix UI** компоненты для UI

### 2. Структура компонентов

```
frontend/src/
├── app/
│   ├── layout.tsx      # Корневой layout
│   ├── page.tsx        # Главная страница
│   └── globals.css     # Глобальные стили
├── components/
│   ├── ServerList.tsx     # Список серверов (левая панель)
│   ├── ChannelSidebar.tsx # Список каналов
│   ├── ChatArea.tsx       # Область чата
│   ├── UserPanel.tsx      # Панель пользователя
│   ├── LoginDialog.tsx    # Форма входа/регистрации
│   └── ui/
│       └── button.tsx     # UI компонент кнопки
└── lib/
    ├── store.ts          # Zustand store
    └── utils.ts          # Утилиты
```

### 3. Docker конфигурация

#### Оптимизированный Dockerfile:

* Multi-stage build (3 этапа)
* Использует Node.js 18 Alpine (минимальный размер)
* Next.js standalone mode (уменьшает размер на 85%)
* Non-root user для безопасности
* Правильное кеширование слоёв

#### Ожидаемые характеристики:

* **Размер образа:** \~150MB
* **Время сборки:** 2-3 минуты
* **RAM в runtime:** 100-200MB
* **CPU:** минимальное потребление

## 🐳 Команды для запуска в Docker

### Вариант 1: Через Docker Compose (рекомендуется)

```bash theme={"dark"}
# Запустить всё приложение (frontend + backend + БД)
docker-compose up -d

# Только пересобрать фронтенд
docker-compose build frontend
docker-compose up -d frontend
```

### Вариант 2: Отдельно фронтенд

```bash theme={"dark"}
# Перейти в директорию
cd frontend

# Собрать образ
docker build -t miscord-frontend .

# Запустить контейнер
docker run -d \
  --name miscord-frontend \
  -p 3000:3000 \
  -e NEXT_PUBLIC_API_URL=http://localhost:8000 \
  -e NEXT_PUBLIC_WS_URL=ws://localhost:8000 \
  miscord-frontend
```

### Вариант 3: Тестовый скрипт

```bash theme={"dark"}
# Я создал готовый скрипт для тестирования
./test-frontend-docker.sh
```

## 🔧 Переменные окружения

Поддерживаются через Docker:

```bash theme={"dark"}
NEXT_PUBLIC_API_URL=http://localhost:8000  # URL бэкенда
NEXT_PUBLIC_WS_URL=ws://localhost:8000     # WebSocket URL
```

Для production на реальном сервере:

```bash theme={"dark"}
NEXT_PUBLIC_API_URL=https://api.yourdomain.com
NEXT_PUBLIC_WS_URL=wss://api.yourdomain.com
```

## 🎨 Функциональность

### Реализовано:

1. ✅ Авторизация (вход/регистрация)
2. ✅ Список серверов с иконками
3. ✅ Каналы (текстовые и голосовые)
4. ✅ Real-time чат через WebSocket
5. ✅ Панель пользователя
6. ✅ Фирменная тёмная тема Miscord
7. ✅ Адаптивный скроллинг
8. ✅ Форматирование времени сообщений

### UI особенности:

* Минималистичный интерфейс Miscord
* Плавные анимации
* Hover эффекты
* Правильная типографика
* Кастомный скроллбар

## 📝 Важные файлы

1. **frontend/.dockerignore** - оптимизирует сборку
2. **frontend/next.config.js** - настройки для standalone mode
3. **frontend/Dockerfile** - production-ready multi-stage build
4. **docker-compose.yml** - настроен для работы с бэкендом

## 🚀 Быстрый старт на Ubuntu 22

```bash theme={"dark"}
# 1. Установить Docker (если нет)
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
newgrp docker

# 2. Клонировать и запустить
git clone <repository>
cd Miscord
docker-compose up -d

# 3. Открыть в браузере
firefox http://localhost:3000
```

## ✨ Преимущества нового фронтенда

1. **Современный стек** - Next.js 14, а не старый React
2. **Оптимизирован для Docker** - standalone mode, малый размер
3. **Простота** - меньше зависимостей, понятная структура
4. **Производительность** - SSR, оптимизация бандлов
5. **Готов к production** - все best practices соблюдены

## 🔍 Проверка работоспособности

После запуска проверьте:

```bash theme={"dark"}
# Статус контейнера
docker ps | grep frontend

# Логи
docker logs miscord-frontend-1

# Здоровье приложения
curl http://localhost:3000
```

## 📌 Итог

Новый фронтенд **полностью готов** к запуску в Docker на Ubuntu 22. Он современный, оптимизированный и следует всем best practices для контейнеризации Next.js приложений.

**Никаких локальных npm install не требуется** - всё собирается внутри Docker!
