Перейти к содержимому

Go Modules

NORA реализует протокол прокси Go-модулей (GOPROXY). Сервер хранит Go-модули и раздаёт их командам go. Модули становятся иммутабельными после сохранения.

Направьте go на NORA:

Окно терминала
export GOPROXY=http://nora.example.com:4000/go,direct
export GONOSUMCHECK=* # опционально, пропустить sumdb для приватных модулей

Затем используйте Go как обычно:

Окно терминала
go get example.com/my-module@v1.2.3
go mod download

NORA загружает модули из upstream-прокси Go, если они не найдены локально.

config.toml:

[go]
enabled = true
proxy = "https://proxy.golang.org"
proxy_timeout = 30
proxy_timeout_zip = 120
max_zip_size = 104857600 # 100 МБ

Переменные окружения:

ПеременнаяОписаниеПо умолчанию
NORA_GO_ENABLEDВключить прокси Go-модулейtrue
NORA_GO_PROXYURL upstream-проксиhttps://proxy.golang.org
NORA_GO_PROXY_AUTHАутентификация upstream (user:pass)
NORA_GO_PROXY_TIMEOUTТаймаут upstream для метаданных (секунды)30
NORA_GO_PROXY_TIMEOUT_ZIPТаймаут upstream для скачивания .zip (секунды)120
NORA_GO_MAX_ZIP_SIZEМаксимальный размер zip модуля в байтах104857600 (100 МБ)
ФункцияСтатусПримечание
/@v/listПолнаяСписок известных версий
/@v/{version}.infoПолнаяJSON с метаданными версии
/@v/{version}.modПолнаяФайл go.mod
/@v/{version}.zipПолнаяZip-архив модуля
/@latestПолнаяИнформация о последней версии
Экранирование пути модуляПолная!x в X по спецификации
ИммутабельностьПолная.info, .mod, .zip неизменяемы после первой записи
Настраиваемый лимит размера zipПолнаяПо умолчанию 100 МБ
  • Go-модули становятся иммутабельными после сохранения — механизм удаления или перезаписи отсутствует.
  • $GONOSUMDB / $GONOSUMCHECK — это клиентские настройки, они не управляются NORA.