# Molva Backend Backend сервис для платформы Molva, написанный на Go. ## Требования - Go 1.24+ - Docker (опционально) - Git ## Установка и настройка ### 1. Клонирование репозитория ```bash git clone 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` - дата сборки