# README
Менеджер паролей Keeper
Дипломная работа на курсе "Продвинутый Go-разработчик"
Общие требования
Keeper представляет собой клиент-серверную систему, позволяющую пользователю надёжно и безопасно хранить логины, пароли, бинарные данные и прочую приватную информацию.
Полное описание технического задания на Яндекс.Практикуме
Реализация
Проект представляет собой сервеное и клиентское приложение
Серверная часть
Архитектура
Серверная часть состоит из самого приложения и хранилища Postgres, кэширование запросов аутентификации происходит в памяти.
Запуск
Для безопасной работы необходима генерация публичных и приватных ключей для шифрования токенов пользователей.
make collectKeys # генерация ключей в base64
правим .env
cp .env.sample .env
Собираем 2 docker контейнера для сервера и базы данных с настройками из .env (необходим docker-compose)
make compose
Собираем клиентское приложение (в зависимости от операционной системы подставляем значения:linux/amd64 linux/arm64 darwin/amd64 darwin/arm64 windows/amd64
, по умолчанию для darwin/amd64
)
make client linux/amd64
Полностью удалить клиентское приложение можно:
make clean
Описание API серверной части в формате swagger - http://localhost:8080/api/v1/swagger/index.html
Клиентская часть
Для клиента разработано cli-приложение, которое локально сохраняет данные пользователя в зашифрованном по паролю виде.
Для работы клиента необходимо наличие конфигурационного ./config/client/config.yml
файла
Перечень доступных пользователю команд, флаги или опции можно посмотреть, через флаг -h
или --help
:
Usage:
keeper [flags]
keeper [command]
Available Commands:
register user_email user_password
login user_email user_password
logout
add
login
card
note
binary
get
login
card
note
binary
del
login
card
note
binary
sync
show
Flags:
-h, --help help for keeper