Свой чат на собственном сервере
W1DO Chat — браузерный мессенджер для семьи, друзей, команды или сотрудников. Установка и обновление выполняются через Docker Compose; обязательная внешняя чат-платформа или control plane не нужны.
Возможности
- Публичные и приватные комнаты, роли владельца, администратора и участника, приглашения и личные диалоги.
- Сообщения в реальном времени, ответы, реакции, упоминания, редактирование и мягкое удаление.
- Индикаторы присутствия и набора текста, уведомления о пропущенных сообщениях, синхронизация истории после обрыва.
- Поиск по комнатам на Typesense, загрузка фотографий и документов.
- Опциональные AI-редактор черновиков и пересказ прикреплённых документов.
- Административная панель, светлая и тёмная темы, управление размером текста и клавиатурная доступность.
Технологии
Backend: PHP 8.4, Laravel 13, Octane с FrankenPHP, Reverb, Horizon, PostgreSQL, Redis и Typesense. Frontend: React 19, TypeScript, Vite, TanStack Query и Zustand. Стек включает восемь Docker-сервисов, OpenAPI 3.1 и CI-проверки.
Полный список функций, требования к серверу и инструкции по установке приведены в README проекта.
Для чего
Для семьи, друзей или команды, которым нужен собственный чат на своём домене. Пользователи открывают его в браузере на телефоне или компьютере; отдельное приложение устанавливать не требуется.
Проект можно развернуть на своём VPS и самостоятельно управлять данными, доступом и обновлениями.
Что решает
- Переписка и файлы остаются на сервере владельца, без обязательной зависимости от сторонней чат-платформы.
- Комнаты, роли, приглашения, личные диалоги, реакции, ответы и поиск собраны в одном приложении.
- WebSocket обеспечивает сообщения и присутствие в реальном времени; после обрыва соединения история синхронизируется.
- AI-помощник выключен по умолчанию и предлагает отредактированный черновик вместо самостоятельной публикации.
Инструкция по установке
VPS без панели
Нужны Docker 24 или новее, минимум 2 vCPU, 2 ГБ RAM и 10 ГБ диска. В комфортной конфигурации README рекомендует 4 vCPU, 4 ГБ RAM и 20 ГБ диска.
git clone https://github.com/w1do/chat.git
cd chat
docker compose -f docker-compose.yml -f docker-compose.standalone.yml up -d --buildФайл standalone публикует HTTP-порт (по умолчанию 80; его можно изменить через HTTP_PORT). При первом запуске стек генерирует ключ приложения, выполняет миграции и создаёт поисковый индекс. После регистрации первого пользователя назначьте администратора:
docker compose exec api php artisan chat:grant-admin ваш_логинDokploy или другой reverse proxy
Создайте Compose-сервис из репозитория w1do/chat, ветка main, файл docker-compose.yml. Заполните переменные из .env.example, включая домен приложения и секреты базы, Redis, Reverb и Typesense. Направьте HTTPS-домен на сервис web, порт 8080, и запустите Deploy. Порты 80/443 наружу из стека публиковать не нужно.
Подробности и диагностика: README репозитория.
Часто задаваемые вопросы
Найдите ответы на наиболее часто задаваемые вопросы о проекте, процессе и результатах.
Нет. Чат открывается в браузере и адаптирован для мобильных устройств.
В PostgreSQL на сервере владельца. Сквозного шифрования нет: администратор сервера технически может прочитать переписку.
Да. В README описан запуск в Dokploy и за reverse proxy; внешний трафик направляется на сервис web.
Нет. AI-помощник опционален и выключен по умолчанию; поиск также можно не использовать.