This commit is contained in:
Alex Shevchuk
2025-08-18 17:12:04 +03:00
commit d84487d238
157 changed files with 160686 additions and 0 deletions

169
README.md Normal file
View File

@@ -0,0 +1,169 @@
# 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` - дата сборки