Анонимный мессенджер в реальном времени. Без регистрации, без истории переписки, без идентификации личности
lime - это лёгкий веб-мессенджер, ориентированный на приватность:
- Никаких аккаунтов и паролей - только локальный профиль (имя и кaomoji-аватар), хранящийся в браузере
- Чаты создаются на лету по ID - достаточно поделиться ссылкой, чтобы пригласить собеседника
- Сообщения не сохраняются на сервере - история существует только на время сессии
- Голосовые звонки прямо в чате через WebRTC (PeerJS)
- PWA - приложение можно установить на телефон или десктоп
- Frontend - чистый HTML/CSS/JavaScript (ES-модули), без сборщиков и фреймворков
- Стили и общие скрипты - вынесены в отдельный репозиторий
cdn, подключаемый как git-submodule и раздаваемый через jsDelivr - Обмен сообщениями - WebSocket-соединение с сигнальным сервером
- Звонки - WebRTC поверх PeerJS
- Локальное хранилище - IndexedDB (профиль пользователя, контакты)
- Раздача статики - Nginx (в Docker-контейнере)
Проект использует git-submodule для репозитория cdn, поэтому клонировать нужно рекурсивно:
git clone --recurse-submodules https://github.com/live-message/chat.git
cd chatЕсли репозиторий уже склонирован без сабмодулей:
git submodule update --init --recursivedocker compose up -dПриложение будет доступно на http://localhost:8080.
docker build -t lime-chat .
docker run -p 8080:80 lime-chatКаталог web/ - это обычная статика, поэтому её можно раздать любым HTTP-сервером, например:
npx serve web- При первом запуске приложени kaomoji-аватар и имя. Данные сохраняются локально (IndexedDB)
- На главной странице можно создать новый чат или ввести ID существующего
- Внутри чата (
/chat/{chatId}) клиент подключается по WebSocket к сигнальному серверу и обменивается сообщениями в реальном времени - Голосовые звонки устанавливаются напрямую между участниками (peer-to-peer) через WebRTC/PeerJS. Сервер участвует только в сигнализации
- При закрытии вкладки история чата не сохраняется
cdn - общие статические ресурсы (CSS, JS), подключаемые через jsDelivr и как git-submodule
Проект распространяется под лицензией GNU GPL v3
Информацию о том, как сообщить об уязвимости, смотрите в SECURITY.md