Менеджер личных Go пакетов
| cmd/gopkg | ||
| internal | ||
| .gitignore | ||
| .golangci.yml | ||
| config.yaml.dist | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| README.md | ||
GoPkg
GoPkg — это веб-сервис для хостинга Go-модулей, который предоставляет удобный
интерфейс для просмотра и документирования Go-пакетов. Проект разработан на
языке Go с использованием фреймворка Echo для веб-сервера и шаблонизатора
templ для генерации HTML.
Основные возможности
- Веб-интерфейс для просмотра доступных Go-модулей
- Автоматическая генерация ссылок на документацию, исходный код и лицензию
- Поддержка динамической перезагрузки конфигурации
- Адаптивный дизайн с использованием Bootstrap
- Поддержка Go vanity import server (сервер ванильных импортов)
Архитектура проекта
Проект структурирован по модульному принципу:
cmd/gopkg/— точка входа в приложениеinternal/config/— конфигурация приложения с использованием Viperinternal/model/— бизнес-модели и структуры данныхinternal/server/— логика веб-сервера на основе Echointernal/view/— шаблоны интерфейса с использованиемtemplinternal/view/assets/— статические файлы (CSS, JS)
Зависимости
github.com/a-h/templ— для генерации типобезопасных HTML-шаблоновgithub.com/labstack/echo/v4— веб-фреймворкgithub.com/spf13/viper— для управления конфигурацией
Конфигурация
Сервис использует файл конфигурации в формате YAML. Пример конфигурации можно
найти в файле config.yaml.dist.
Основные параметры конфигурации:
logger.level— уровень логированияcommon.addr— адрес и порт для запуска сервераcommon.url— базовый URL сервисаcommon.base— базовое имя для импорта модулейpackages— список доступных Go-модулей с их описанием
Лицензия
Проект распространяется под лицензией GNU General Public License версии 3 (GPLv3). Полный текст лицензии доступен в файле LICENSE.
Модуль и репозиторий
- Модуль:
go.neonxp.ru/gopkg - Репозиторий:
https://gitrepo.ru/NeonXP/gopkg.git
Установка и запуск
Локальная сборка
- Склонируйте репозиторий:
git clone https://gitrepo.ru/NeonXP/gopkg.git
- Установите зависимости:
go mod download
- Настройте конфигурацию:
cp config.yaml.dist config.yaml
# Отредактируйте config.yaml при необходимости
- Запустите сервер:
go run ./cmd/gopkg
Запуск через Docker
Сервис можно запустить с использованием Docker-образа:
# Запуск контейнера с монтированием конфигурации
docker run -d \
-p 8000:8000 \
-v $(pwd)/config.yaml:/app/config.yaml \
--name gopkg \
gitrepo.ru/neonxp/gopkg:latest
Docker-образ доступен по адресу: gitrepo.ru/neonxp/gopkg:latest
Сервис будет доступен по адресу http://localhost:8000.