Надёжное клиент-серверное хранилище персональных данных
GophKeeper — приложение для безопасного хранения, шифрования и синхронизации конфиденциальных данных. Система позволяет хранить и обновлять данные на разных устройствах.
- 🔑 Логин/пароль
- 📝 Произвольный текст
- 🔐 Бинарные данные
- 💳 Банковские карты
- 🏷 Мета-информация для любого типа данных
- 🛡 Шифрование на клиенте: AES-256
- 🔐 Аутентификация: JWT
- 🌐 Протокол: gRPC + Protocol Buffers
- 🔄 Синхронизация: клиент ↔ сервер
- 💾 Локальное хранилище: SQLite (зашифрованная база)
- 🖥 TUI интерфейс: BubbleTea
- TUI интерфейс
- Локальная база SQLite
- AES-256 шифрование данных
- gRPC клиент
- gRPC API
- PostgreSQL
- JWT авторизация
- TLS соединения
api/proto— protobuf спецификацияpkg/gen— сгенерированные protobuf/gRPC файлы
- Go 1.23+
- PostgreSQL
- TLS сертификаты
Сервер поддерживает загрузку конфигурации в следующем приоритете:
- Переменные окружения
- Флаги командной строки
- JSON-конфиг
- Значения по умолчанию
| Источник | Имя | Описание |
|---|---|---|
| env | DATABASE_DSN |
Подключение к PostgreSQL |
| env | JWT_KEY |
Ключ JWT (мин. 32 байта) |
| env | LOG_LEVEL |
debug, info, warn, error |
| env | GRPC_PORT |
gRPC порт (:50051) |
| env | CERT |
Путь к TLS сертификату |
| env | CERT_KEY |
Путь к ключу TLS |
| env | CONFIG |
Путь к конфиг-файлу |
| flag | -d |
DSN базы данных |
| flag | -k |
JWT ключ |
| flag | -l |
Уровень логирования |
| flag | -g |
Порт gRPC |
| flag | -c, --config |
Путь к JSON-конфигу |
| flag | --tls-cert |
Путь к сертификату |
| flag | --tls-key |
Путь к ключу |
DATABASE_DSNCERTиCERT_KEY
- Клиент подключается только к порту
:50051 - Клиент использует системный пул корневых сертификатов для проверки TLS
- Для самоподписанных сертификатов добавьте сертификат в системное хранилище
{
"database_dsn": "database_dsn",
"jwt_key": "myjwtsecretkeymyjwtsecretkey123",
"log_level": "debug",
"grpc_port": ":50051",
"cert": "./certs/localhost.pem",
"cert_key": "./certs/localhost-key.pem",
"timeout_dur": "2m"
}# Настройка базы данных
cd server/cmd/migrator
go run main.go -d "database_dsn"
# Сборка сервера
cd ../gophkeeper
go build -o gophkeeper-server
# Запуск сервера
./gophkeeper-server -c ./configs/server.local.json# Сборка клиента
cd client/cmd/gophkeeper
go build -o gophkeeper
# Запуск клиента
./gophkeeper MIT License