1
This commit is contained in:
169
README.md
Normal file
169
README.md
Normal 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` - дата сборки
|
||||
|
Reference in New Issue
Block a user