Files
test_deploy/README.md
Alex Shevchuk d84487d238 1
2025-08-18 17:12:04 +03:00

170 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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` - дата сборки