Categorygithub.com/ShavelSoSmetanoi/messenger-backend

# Packages

No description provided by the author
No description provided by the author

# README

messenger-backend

Установка и настройка

1. Клонирование репозитория

Сначала клонируйте репозиторий проекта и перейдите в его директорию:

git clone https://github.com/ShavelSoSmetanoi/messenger-backend.git
cd messenger-backend

2. Создание файлов .env

Для корректной работы приложения вам нужно создать файл .env как в корне проекта, так и в папке deployments, содержащий необходимые настройки для работы с базой данных и JWT.

Шаг 1: В корне проекта создайте файл .env со следующим содержимым:

JWT_SECRET=your_jwt_secret_here
DB_USER=myuser
DB_PASSWORD=mypassword
DB_NAME=mydatabase
DB_HOST=my_postgres_container 
DB_PORT=5432

Замените your_jwt_secret_here на ваш секретный ключ для JWT, а также параметры подключения к базе данных (если они отличаются от значений по умолчанию).

Шаг 2: В папке deployments создайте файл .env:

PG_USER=myuser
PG_PASSWORD=mypassword
PG_NAME=mydatabase

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

Проект написан на Go и использует модули для управления зависимостями. Чтобы установить все зависимости, выполните:

go mod tidy

4. Поднятие Docker Compose

Проект использует Docker Compose для работы с необходимыми сервисами, такими как база данных. Чтобы поднять все сервисы, выполните:

docker-compose -f deployments/docker-compose.yml up -d

5. Установка Goose для управления миграциями

Для управления миграциями используется утилита Goose. Установите её, выполнив следующую команду:

go install github.com/pressly/goose/v3/cmd/goose@latest

Убедитесь, что $GOPATH/bin добавлен в переменную окружения PATH, чтобы команду goose можно было использовать из любого места.

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

goose -dir migrations postgres "user=ваш_пользователь password=ваш_пароль dbname=имя_вашей_базы sslmode=disable" up

По дефоту будет:

goose -dir migrations postgres "user=myuser password=mypassword dbname=mydatabase sslmode=disable" up