Yuriy Mayatnikov 3a30cc63d3 Merge pull request #7 from xmatic-squad/codex/docs/readme-hero
Оформить README и добавить hero Bare
2026-08-24 13:19:48 +03:00

bare

сообщения шифруются в браузере · история остаётся на устройстве · сервер доставляет шифротекст

открыть bare · философия · модель угроз

что это

Bare — маленький независимый E2EE-чат, а не платформа. Он умеет личные чаты и комнаты, работает как PWA, присылает уведомления и переносит локальную историю через зашифрованный файл .bare.

Клиент — HTML, CSS и vanilla JS без npm и сборки. Сервер — Go + SQLite, статика встроена в один бинарь.

  • без аккаунтной обвязки — только ник и пароль, без email, телефона и OAuth;
  • локальная история — сообщения после доставки живут в IndexedDB текущего устройства, а не в облачном архиве;
  • сервер-реле — сервер хранит метаданные и временную очередь недоставленных шифротекстов, удаляя сообщения после подтверждения устройства;
  • криптография в браузере — пароль не покидает клиент, личные чаты и комнаты шифруются через WebCrypto;
  • простая поверхность аудита — клиент состоит из читаемых ES-модулей без бандлера и скрытого шага сборки.

внутри

слой решение
клиент HTML, CSS, vanilla JS, PWA, IndexedDB
сервер Go, SQLite, HTTPS, SSE
ключи ECDH P-256, PBKDF2, HKDF, AES-GCM
доверие TOFU и сверка отпечатков при смене ключа
история только на устройстве; ручной экспорт и импорт .bare

запустить локально

Нужен Go 1.27.

git clone https://github.com/xmatic-squad/bare.git
cd bare
go run ./cmd/bare serve

Откройте http://127.0.0.1:8411. Без переменных окружения Bare создаст bare.db в текущей папке, разрешит регистрацию и запустится без пушей.

go test ./...

Production-настройка, VAPID, nginx и systemd описаны в руководстве по развёртыванию.

честные ограничения

  • Забыл пароль — значит забыл: восстановления нет, потому что пароль участвует в выводе ключей.
  • История в IndexedDB не зашифрована at rest и доступна коду, работающему на устройстве.
  • E2EE не скрывает метаданные, не защищает скомпрометированное устройство и не спасает от оператора, который подменил веб-клиент.
  • Forward secrecy в v1 нет. На iOS пуши работают только у PWA, установленного на экран «Домой».

Полная граница обещаний и допущений — в модели угроз.

документация

лицензия

MIT

S
Description
Bare — простой веб-чат
Readme MIT
4.2 MiB
Languages
Go 56.3%
JavaScript 40.4%
CSS 3.1%
HTML 0.2%