Skip to content

rycln/gokeep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

174 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GophKeeper

Надёжное клиент-серверное хранилище персональных данных

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 сертификаты

📡 Настройка и запуск сервера

Сервер поддерживает загрузку конфигурации в следующем приоритете:

  1. Переменные окружения
  2. Флаги командной строки
  3. JSON-конфиг
  4. Значения по умолчанию

📘 Параметры конфигурации

Источник Имя Описание
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 Путь к ключу

📝 Примечания:

Обязательные параметры:

  1. DATABASE_DSN
  2. CERT и CERT_KEY

Клиентские ограничения:

  • Клиент подключается только к порту :50051
  • Клиент использует системный пул корневых сертификатов для проверки TLS
  • Для самоподписанных сертификатов добавьте сертификат в системное хранилище

📝 Пример JSON-конфига

{
  "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

About

Клиент-серверный менеджер паролей.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages