go-gitverse
go-gitverse — это небольшой веб-сервер, упрощающий использование Go-модулей, опубликованных в Gitverse.
На текущий момент Gitverse не реализует go-probe протокол, который Go использует для автоматического определения типа VCS и URL репозитория.
Чтобы сделать работу с модулями удобнее и избежать необходимости проходить полный процесс публикации пакетов, описанный в документации Gitverse, был создан этот сервис.
Он уже задеплоен по адресу: https://go-gitverse.ru.
Использование
Чтобы подключить модуль из Gitverse через этот сервис, в имени модуля вместо gitverse.ru нужно указать go-gitverse.ru.
Например, в go.mod для собственного модуля:
module go-gitverse.ru/eduskaliev/go-gitverse
А при подключении его в другом проекте:
require go-gitverse.ru/eduskaliev/go-gitverse v0.1.0
Сервис автоматически перенаправит запрос Go-инструментов на соответствующий репозиторий в Gitverse.
Запуск
Доступен готовый Docker-образ (linux/amd64):
docker pull gitverse.ru/eduskaliev/go-gitverse:latest
Параметры запуска:
Usage:
go-gitverse [OPTIONS]
Application Options:
--addr= address to listen on (default: :8080) [$ADDR]
--host= host that serves this proxy, e.g example.com, defaults to the request's Host header [$HOST]
--to= replacement for the import path, e.g https://example.com/ [$TO]
--debug enable debug mode [$DEBUG]
Help Options:
-h, --help Show this help message
В продакшн-версии сервис запущен с настройками:
ADDR=:8080
HOST=go-gitverse.ru
TO=https://gitverse.ru
DEBUG=false
Перед ним установлен reverse-proxy с TLS-терминацией на базе Let's Encrypt.
Примечания
- Сервис не логирует входящие запросы и не сохраняет какую-либо информацию о них.
- Ответственность за содержимое модулей лежит на их авторах. Сервис не проверяет их на безопасность.
- Публикация модуля в gitverse вышеуказанным способом также позволяет pkg.go.dev индексировать модуль в случае, если он публичный, пример: https://pkg.go.dev/go-gitverse.ru/eduskaliev/go-gitverse.