В праздничные дни с 29.12 по 08.01 техническая поддержка отдыхает, но на наиболее важные вопросы постараемся ответить. Счастливого Нового Года!
gitverse new year логотип

go-advanced-yandex-practicum

Форк
0

16 дней назад
16 дней назад
16 дней назад
16 дней назад
16 дней назад
16 дней назад
16 дней назад
16 дней назад
16 дней назад
16 дней назад
16 дней назад
16 дней назад
16 дней назад
16 дней назад
16 дней назад
README.md

go-advanced-yandex-practicum

Репозиторий содержит финальный проект для курса Yandex Practicum "Go-developer Advanced". Проект gopasskeeper - это сервер-клиентское приложение для хранения секретов, таких как логин-пароль учетных данных, банковские карты, заметки, файлы. Он включает GRPC-сервер и TUI-клиент, написанный на Go. Приложение использует PostgreSQL и MinIO, оно шифрует входные данные с использованием Fernet и AES для содержимого базы данных и файлов соответственно.

Установка зависимостей

Вы можете использовать bitnami/postgresql для запуска сервера PostgreSQL и bitnami/minio для запуска сервера MinIO.

Или просто используйте файл docker-compose.yaml для настройки зависимостей с помощью утилиты docker-compose, как показано ниже:

docker compose -f docker-compose.yaml up -d

Установка MinIO

Используйте команду ниже для запуска MinIO.

docker run --name gopasskeeper-minio -d -e MINIO_ROOT_USER=admin -e MINIO_ROOT_PASSWORD=password -e MINIO_USE_SSL=0 -e MINIO_DEFAULT_BUCKETS=storage-dev -p 9000:9000 -p 9001:9001 bitnami/minio:latest

Для запуска сервера приложения необходимо создать сервисную учетную запись. Для создания сервисной учетной записи войдите в веб-интерфейс MinIO (localhost:9090) и создайте ключ доступа. Этот ключ доступа должен быть указан в файле конфигурации по адресу

s3.accessKey
и
s3.secretAccess
.

Конфигурация

Для запуска сервера, клиента и выполнения правильных миграций вам необходимо поместить файл

server-config.yaml
в корневой каталог. Пример его содержимого приведен ниже:

app:
env: local
logLevel: debug
outputFile: logs/stdout.log
healthHost: 127.0.0.1
healthPost: 8080
s3:
host: 127.0.0.1
port: 9000
accessKey: pwb1OknjOtg3HxhIxwOI
bucket: storage-dev
secretAccess: 2HjWjtpoPaYs0jrXhvYgJlVzhN0F3WyuTI6WXRsS
postgresql:
host: 127.0.0.1
port: 5442
user: postgres
password: thepass123
database: postgres
maxOpenConn: 10
maxIdleConn: 10
duration: 5s
migrationFolder: ./migrations
security:
tokenTTL: 1h
signKey: 87ccd01b-0b99-4f3a-8422-dd088f22cde0
certPath: ./certs/cert.pem
certKeyPath: ./certs/key
server:
host: 127.0.0.1
port: 9090
timeout: 30s

Пожалуйста, изучите его внимательно, чтобы правильно настроить секреты, обратите внимание на настройку разделов s3, postgresql и безопасности.

Компиляция

Вы можете использовать команды

Makefile
для сборки бинарных файлов, например:

make go-build

для компиляции клиента, сервера, миграций и генератора сертификатов.

Миграции

Для правильной настройки PostgreSQL необходимо выполнить миграцию. Поэтому просто введите правильные настройки для PostgreSQL в файле server-config.yaml и используйте эту команду:

make go-migrate

Запуск сервера

Если вы правильно настроили все конфигурации, проблем с запуском GRPC-сервера не возникнет:

make go-server

Запуск клиента

То же самое относится и к клиенту, просто используйте эту команду для запуска TUI-клиента:

make go-client

Вы должны увидеть что-то вроде этого. Alt Demo

Замечания

TUI-клиент может использоваться на разных устройствах, все изменения будут автоматически синхронизированы между устройствами.

Описание

gopasskeeper - это проект по выпускной работе на курсе Go-Advanced от Yandex Practicum.

Языки

Go

  • Makefile
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.