feat(sidebar): узкое меню, субменю историй с hover, эффект text-fade

- Сужено боковое меню (56px), убрана иконка Home
- Субменю историй при наведении: полная высота, на всю ширину, z-9999
- Класс text-fade для плавного обрезания длинного текста
- Убраны скругления в субменю
- Chatwoot, изменения в posts-mcs и прочие обновления

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
home
2026-02-21 16:36:58 +03:00
parent 3fa83bc605
commit 8fc82a3b90
53 changed files with 894 additions and 4015 deletions

View File

@@ -0,0 +1,31 @@
# Chatwoot — минимальная конфигурация
# Скопируйте в .env и заполните обязательные поля
# === Обязательно ===
# Сгенерировать: openssl rand -hex 64
SECRET_KEY_BASE=
# Пароль PostgreSQL (обязательно)
POSTGRES_PASSWORD=
# URL фронтенда (где открывать Chatwoot)
FRONTEND_URL=http://localhost:3001
# === PostgreSQL ===
POSTGRES_HOST=postgres
POSTGRES_USERNAME=postgres
RAILS_ENV=production
# === Redis ===
REDIS_URL=redis://redis:6379
# Для production задайте REDIS_PASSWORD и REDIS_URL=redis://:пароль@redis:6379
REDIS_PASSWORD=
# === Опционально ===
# Регистрация новых аккаунтов (true/false)
ENABLE_ACCOUNT_SIGNUP=true
# SMTP — для локальной разработки используйте MailHog (docker compose включает его)
# SMTP_ADDRESS=mailhog
# SMTP_PORT=1025
# MAILER_SENDER_EMAIL=chatwoot@localhost

50
apps/chatwoot/README.md Normal file
View File

@@ -0,0 +1,50 @@
# Chatwoot — self-hosted live chat
Live chat для клиентской поддержки. Данные на вашем сервере.
## Быстрый старт
### 1. Подготовка
```bash
cd chatwoot
cp .env.example .env
```
### 2. Заполнить .env
Обязательно задать:
- **SECRET_KEY_BASE** — сгенерировать: `openssl rand -hex 64`
- **POSTGRES_PASSWORD** — пароль для PostgreSQL
### 3. Запуск
```bash
# Инициализация БД (выполнить один раз)
docker compose run --rm rails bundle exec rails db:chatwoot_prepare
# Запуск
docker compose up -d
```
### 4. Доступ
- **Интерфейс:** http://localhost:3001
- Создайте аккаунт при первом входе (если `ENABLE_ACCOUNT_SIGNUP=true`)
## Встраивание виджета
После создания инбокса в панели Chatwoot скопируйте код виджета и вставьте на сайт перед `</body>`.
## Полезные команды
```bash
# Остановить
docker compose down
# Обновить до новой версии
docker compose pull
docker compose run --rm rails bundle exec rails db:chatwoot_prepare
docker compose up -d
```

View File

@@ -0,0 +1,78 @@
# Chatwoot — self-hosted live chat
# Документация: https://developers.chatwoot.com/self-hosted
x-app: &app
image: chatwoot/chatwoot:latest
env_file: .env
volumes:
- storage_data:/app/storage
services:
rails:
<<: *app
depends_on:
- postgres
- redis
- mailhog
ports:
- "127.0.0.1:3001:3000"
environment:
- NODE_ENV=production
- RAILS_ENV=production
- INSTALLATION_ENV=docker
entrypoint: docker/entrypoints/rails.sh
command: ["bundle", "exec", "rails", "s", "-p", "3000", "-b", "0.0.0.0"]
restart: unless-stopped
sidekiq:
<<: *app
depends_on:
- postgres
- redis
- mailhog
environment:
- NODE_ENV=production
- RAILS_ENV=production
- INSTALLATION_ENV=docker
command: ["bundle", "exec", "sidekiq", "-C", "config/sidekiq.yml"]
restart: unless-stopped
postgres:
image: pgvector/pgvector:pg16
restart: unless-stopped
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=chatwoot
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD required}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
mailhog:
image: mailhog/mailhog:latest
restart: unless-stopped
ports:
- "1025:1025"
- "8025:8025"
redis:
image: redis:alpine
restart: unless-stopped
command: ["sh", "-c", "redis-server $${REDIS_PASSWORD:+--requirepass \"$$REDIS_PASSWORD\"}"]
env_file: .env
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
volumes:
storage_data:
postgres_data:
redis_data: