Enclosed: минималистичное приложение для защищённых заметок
Enclosed — это минималистичное веб-приложение для отправки частных и защищённых заметок. Оно решает задачу безопасного обмена информацией, обеспечивая сквозное шифрование: только отправитель и получатель могут видеть содержимое заметок.
Пользователи могут настраивать параметры безопасности, устанавливать пароли и задавать срок действия заметок, после чего они могут самоуничтожаться. Это отличает Enclosed от других аналогичных решений, предлагая более высокий уровень конфиденциальности и контроля над данными. Проект может быть полезен для журналистов, адвокатов или всех, кто заботится о своей приватности.
Приложение написано на JavaScript и использует клиентское шифрование с AES-GCM. Запустить его можно как в режиме демо на enclosed.cc, так и самостоятельно, следуя docker" target="_blank" rel="noopener">инструкциям по самохостингу. Учитывай, что функционал требует наличия собственного сервера, а возможность аутентификации — только по электронной почте и паролю.
Проект **Enclosed** — это минималистичное веб-приложение, предназначенное для отправки защищённых заметок и файлов с использованием сквозного шифрования. Все заметки шифруются на стороне клиента, что позволяет гарантировать, что сервер не имеет доступа к их содержимому. Пользователи могут установить пароль, задать срок действия заметки (TTL) и выбрать автоматическое уничтожение заметки после её чтения. Доступна демонстрационная версия на сайте enclosed.cc.
Основные возможности
- **Сквозное шифрование**: Заметки шифруются на стороне клиента с использованием AES-GCM.
- **Прикрепление файлов**: Возможность безопасной отправки файлов вместе с заметками.
- **Отсутствие знаний сервера**: Сервер не имеет доступа к содержимому заметок и файлов.
- **Конфигурируемые параметры безопасности**: Можно задавать пароль, срок действия и задание на автоматическое уничтожение заметки.
- **Минималистичный интерфейс**: Удобный и простой интерфейс для быстрого обмена заметками.
- **Поддержка многоязычности**: Приложение доступно на нескольких языках.
- **Аутентификация**: Возможность использовать аутентификацию через email и пароль для создания заметок.
- **Темный режим**: Поддержка темной темы для удобного использования ночью.
- **Отзывчивый дизайн**: Приложение работает на всех устройствах, от компьютеров до мобильных телефонов.
- **Открытый исходный код**: Проект доступен под лицензией Apache 2.0.
- **Самостройка**: Возможность развернуть собственный экземпляр приложения.
- **CLI**: Командная строка для создания заметок из терминала.
Установка и запуск
Чтобы быстро запустить приложение с помощью Docker, используй следующую команду:
docker run -d --name enclosed --restart unless-stopped -p 8787:8787 corentinth/enclosed
Поддерживаются образы для архитектур AMD64 и ARM64. Для ARMv7 доступна последняя версия v1.16.1. Дополнительные сведения можно найти в документации по поддерживаемым архитектурам.
Как это работает
Работа приложения заключается в следующем:
- Пользователь создает заметку с контентом и, при желании, задаёт пароль.
- Генерируется базовый ключ на стороне клиента.
- Из базового ключа и опционального пароля выводится мастер-ключ с помощью PBKDF2.
- Заметка шифруется с использованием мастер-ключа.
- Шифрованная заметка отправляется на сервер.
- Сервер хранит шифрованную заметку и предоставляет ей ID.
- Создается ссылка с ID заметки и базовым ключом.
- Ссылка передаётся получателю.
- Получатель открывает ссылку, и приложение извлекает шифрованную заметку с сервера.
- Базовый ключ извлекается из URL.
- Если заметка защищена паролем, получателю предлагается ввести его.
- Мастер-ключ выводится из базового ключа и пароля.
- Заметка расшифровывается и становится доступной для чтения.
CLI Приложение
С помощью CLI Enclosed можно создавать заметки из терминала. Установку можно выполнить с помощью npm, yarn или pnpm:
# с npm
npm install -g @enclosed/cli
# с yarn
yarn global add @enclosed/cli
# с pnpm
pnpm add -g @enclosed/cli
Для создания заметки можно воспользоваться следующими командами:
# Основное использование
enclosed create "Hello, World!"
# Используя stdin
cat file.txt | enclosed create
# С полными опциями
enclosed create --deleteAfterReading --password "password" --ttl 3600 "Hello, World!"
Для просмотра заметок используйте:
# Пароль будет запрашиваться, если заметка защищена
enclosed view
# Или можно указать пароль напрямую
enclosed view --password "password"
Для конфигурации используемого экземпляра CLI:
enclosed config set instance-url https://enclosed.cc
Ограничения
На данный момент поддерживаются архитектуры AMD64 и ARM64. Поддержка ARMv7 ограничена последней версией v1.16.1. Кроме того, для создания заметок требуется интернет-соединение для доступа к серверу и обмена зашифрованной информацией.
Открыть на GitHub: CorentinTh/enclosed →
RepoRadar