170 lines
4.5 KiB
Markdown
170 lines
4.5 KiB
Markdown
# Molva Backend
|
||
|
||
Backend сервис для платформы Molva, написанный на Go.
|
||
|
||
## Требования
|
||
|
||
- Go 1.24+
|
||
- Docker (опционально)
|
||
- Git
|
||
|
||
## Установка и настройка
|
||
|
||
### 1. Клонирование репозитория
|
||
|
||
```bash
|
||
git clone <repository-url>
|
||
cd molva-backend
|
||
```
|
||
|
||
### 2. Установка зависимостей
|
||
|
||
```bash
|
||
go mod download
|
||
```
|
||
|
||
### 3. Установка инструментов разработки
|
||
|
||
```bash
|
||
make install-tools
|
||
```
|
||
|
||
## Запуск проекта
|
||
|
||
### Локальная разработка
|
||
|
||
Для запуска в режиме разработки:
|
||
|
||
```bash
|
||
make run
|
||
```
|
||
|
||
По умолчанию проект запускается с конфигурацией:
|
||
- **Конфигурация**: `.build/config/`
|
||
- **Окружение**: `local`
|
||
|
||
### Изменение параметров запуска
|
||
|
||
Вы можете изменить параметры запуска:
|
||
|
||
```bash
|
||
# Изменение пути к конфигурации
|
||
make run CONFIG_PATH=...
|
||
|
||
# Изменение окружения
|
||
make run ENV=...
|
||
|
||
# Изменение обоих параметров
|
||
make run CONFIG_PATH=... ENV=...
|
||
```
|
||
|
||
### Сборка проекта
|
||
|
||
#### Сборка для всех платформ
|
||
|
||
```bash
|
||
make build
|
||
```
|
||
|
||
Эта команда создаст исполняемые файлы для:
|
||
- Linux (amd64, arm64)
|
||
- macOS (amd64, arm64)
|
||
- Windows (amd64, arm64)
|
||
|
||
Файлы будут сохранены в директории `bin/` с именами:
|
||
- `molva-app-backend_linux_amd64`
|
||
- `molva-app-backend_linux_arm64`
|
||
- `molva-app-backend_darwin_amd64`
|
||
- `molva-app-backend_darwin_arm64`
|
||
- `molva-app-backend_windows_amd64.exe`
|
||
- `molva-app-backend_windows_arm64.exe`
|
||
|
||
#### Сборка для конкретной платформы
|
||
|
||
```bash
|
||
# Только для Linux
|
||
make build-linux
|
||
|
||
# Только для macOS
|
||
make build-darwin
|
||
|
||
# Только для Windows
|
||
make build-windows
|
||
```
|
||
|
||
### Docker
|
||
|
||
Для сборки Docker образа:
|
||
|
||
```bash
|
||
make docker-build
|
||
```
|
||
|
||
Образ будет создан с тегом `molva-app-backend:$(VERSION)`, где `VERSION` - это git tag или "v0.0.0" по умолчанию.
|
||
|
||
## Разработка
|
||
|
||
### Проверка кода
|
||
|
||
Перед коммитом рекомендуется запустить линтер:
|
||
|
||
```bash
|
||
make lint
|
||
```
|
||
|
||
### Очистка
|
||
|
||
Для удаления скомпилированных файлов:
|
||
|
||
```bash
|
||
make clean
|
||
```
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
molva-backend/
|
||
├── bin/ # Скомпилированные файлы
|
||
├── cmd/
|
||
│ └── main.go # Точка входа приложения
|
||
├── internal/ # Внутренние пакеты
|
||
│ ├── auth/ # Аутентификация
|
||
│ ├── broker/ # Message broker
|
||
│ ├── cache/ # Кэширование
|
||
│ ├── config/ # Конфигурация
|
||
│ ├── database/ # Работа с БД
|
||
│ ├── feed/ # Лента
|
||
│ ├── file_manager/ # Управление файлами
|
||
│ ├── form_generator/ # Генератор форм
|
||
│ ├── http/ # HTTP handlers
|
||
│ ├── integration/ # Интеграции
|
||
│ ├── logger/ # Логирование
|
||
│ ├── notifications/ # Уведомления
|
||
│ ├── object_storage/ # Объектное хранилище
|
||
│ ├── request_model/ # Модели запросов
|
||
│ ├── services/ # Сервисы
|
||
│ ├── types/ # Типы данных
|
||
│ └── url_shortener/ # Сокращение URL
|
||
├── Dockerfile
|
||
├── go.mod
|
||
├── Makefile
|
||
└── README.md
|
||
```
|
||
|
||
## Конфигурация
|
||
|
||
Проект использует конфигурационные файлы в формате YAML. По умолчанию они находятся в директории `.build/config/`.
|
||
|
||
Структура конфигурации:
|
||
- `local.yaml` - для локальной разработки
|
||
- `staging.yaml` - для dev окружения
|
||
- `production.yaml` - для production окружения
|
||
|
||
## Переменные сборки
|
||
|
||
Приложение включает следующие переменные сборки:
|
||
- `version` - версия приложения (git tag)
|
||
- `commit` - хеш коммита
|
||
- `date` - дата сборки
|
||
|