Larets — это инструмент для работы с различными типами репозиториев, такими как Docker, Git, Helm, Maven, RPM и DEB. Проект предоставляет API для CRUD операций, а также позволяет проксировать и хранить образы, артефакты и другие пакеты. Это проект с открытым исходным кодом, который использует PostgreSQL для хранения метаданных о репозиториях и ориентирован на асинхронные операции.
- База данных: PostgreSQL.
- Конфигурация: Использование переменных окружения и файла
.env
для конфигурации. - Поддерживаемые репозитории: Docker, Git, Helm, Maven, RPM, DEB.
- API для CRUD операций: REST API для управления и администрирования репозиториев.
- Веб-интерфейс: В дальнейшем планируется добавление веб-интерфейса.
config/
- Работа с конфигурацией проекта.repositories/
- Работа с различными типами репозиториев (Docker, Git, Helm, Maven, RPM, DEB).api/
- CRUD операции и основной API.web/
- дира для будущего веб-интерфейса.models/
- Описание моделей базы данных.
- Go 1.22+
- PostgreSQL 13+
-
Клонируйте репозиторий:
git clone https://github.com/yourusername/larets.git cd larets
-
Создайте файл
.env
на основе примера.env.example
и заполните необходимые параметры:cp .env.example .env
Основные настройки выполняются через переменные окружения. Примеры параметров конфигурации:
DATABASE_URL
- URL для подключения к базе данных PostgreSQL.ENABLE_DOCKER
,ENABLE_GIT
,ENABLE_HELM
,ENABLE_MAVEN
,ENABLE_RPM
,ENABLE_DEB
- Включение или отключение работы с конкретными типами репозиториев (значенияtrue
илиfalse
).
После запуска приложение доступно на порту 8080
. Оно предоставляет REST API для работы с репозиториями:
- Docker:
/images
- Git:
/git
- Helm:
/helm
- Maven:
/maven
- RPM:
/rpm
- DEB:
/deb
Пример запроса:
curl http://localhost:8080/images
- DockerImage: Информация об образах Docker (ID, имя, тег, время создания).
- GitRepository: Информация о Git репозиториях (ID, имя, URL, время создания).
- HelmChart, MavenArtifact, RpmPackage, DebPackage - Структуры для хранения информации о соответствующих пакетах.
Проект Larets распространяется под лицензией MIT. Подробности см. в файле LICENSE.
Если хотите внести вклад в проект:
- Форкните репозиторий.
- Создайте ветку для вашей функции (
git checkout -b feature-branch
). - Внесите изменения и сделайте коммит (
git commit -m 'Add some feature'
). - Отправьте изменения в свой форк (
git push origin feature-branch
). - Создайте Pull Request.
Для вопросов или предложений свяжитесь по адресу: [[email protected]]