ad72aa2a5eaef765ad3ccce41c7c5dc727b179d0

Some checks failed
Deploy Production / Deploy to Staging (push) Has been skipped
Go Linter / Build golang services (api_gateway) (push) Has been cancelled
Go Linter / Push Docker Images (api_gateway) (push) Has been cancelled
Go Linter / Run golangci-lint (api_gateway) (push) Has been cancelled
Molva Backend
Backend сервис для платформы Molva, написанный на Go.
Требования
- Go 1.24+
- Docker (опционально)
- Git
Установка и настройка
1. Клонирование репозитория
git clone <repository-url>
cd molva-backend
2. Установка зависимостей
go mod download
3. Установка инструментов разработки
make install-tools
Запуск проекта
Локальная разработка
Для запуска в режиме разработки:
make run
По умолчанию проект запускается с конфигурацией:
- Конфигурация:
.build/config/
- Окружение:
local
Изменение параметров запуска
Вы можете изменить параметры запуска:
# Изменение пути к конфигурации
make run CONFIG_PATH=...
# Изменение окружения
make run ENV=...
# Изменение обоих параметров
make run CONFIG_PATH=... ENV=...
Сборка проекта
Сборка для всех платформ
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
Сборка для конкретной платформы
# Только для Linux
make build-linux
# Только для macOS
make build-darwin
# Только для Windows
make build-windows
Docker
Для сборки Docker образа:
make docker-build
Образ будет создан с тегом molva-app-backend:$(VERSION)
, где VERSION
- это git tag или "v0.0.0" по умолчанию.
Разработка
Проверка кода
Перед коммитом рекомендуется запустить линтер:
make lint
Очистка
Для удаления скомпилированных файлов:
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
- дата сборки
Description
Languages
JavaScript
85.7%
Go
14.1%