Менеджер личных Go пакетов
Find a file
2025-12-28 13:30:33 +03:00
cmd/gopkg Инициальный коммит 2025-12-27 18:50:43 +03:00
internal Нормальная обработка модулей 2025-12-28 13:30:33 +03:00
.gitignore Инициальный коммит 2025-12-27 18:50:43 +03:00
.golangci.yml Инициальный коммит 2025-12-27 18:50:43 +03:00
config.yaml.dist Нормальная обработка модулей 2025-12-28 13:30:33 +03:00
Dockerfile Инициальный коммит 2025-12-27 18:50:43 +03:00
go.mod Инициальный коммит 2025-12-27 18:50:43 +03:00
go.sum Инициальный коммит 2025-12-27 18:50:43 +03:00
LICENSE Инициальный коммит 2025-12-27 18:50:43 +03:00
README.md Инициальный коммит 2025-12-27 18:50:43 +03:00

GoPkg

GoPkg — это веб-сервис для хостинга Go-модулей, который предоставляет удобный интерфейс для просмотра и документирования Go-пакетов. Проект разработан на языке Go с использованием фреймворка Echo для веб-сервера и шаблонизатора templ для генерации HTML.

Основные возможности

  • Веб-интерфейс для просмотра доступных Go-модулей
  • Автоматическая генерация ссылок на документацию, исходный код и лицензию
  • Поддержка динамической перезагрузки конфигурации
  • Адаптивный дизайн с использованием Bootstrap
  • Поддержка Go vanity import server (сервер ванильных импортов)

Архитектура проекта

Проект структурирован по модульному принципу:

  • cmd/gopkg/ — точка входа в приложение
  • internal/config/ — конфигурация приложения с использованием Viper
  • internal/model/ — бизнес-модели и структуры данных
  • internal/server/ — логика веб-сервера на основе Echo
  • internal/view/ — шаблоны интерфейса с использованием templ
  • internal/view/assets/ — статические файлы (CSS, JS)

Зависимости

Конфигурация

Сервис использует файл конфигурации в формате 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

Установка и запуск

Локальная сборка

  1. Склонируйте репозиторий:
git clone https://gitrepo.ru/NeonXP/gopkg.git
  1. Установите зависимости:
go mod download
  1. Настройте конфигурацию:
cp config.yaml.dist config.yaml
# Отредактируйте config.yaml при необходимости
  1. Запустите сервер:
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.