Репозитории управляются на странице «Настройки» → «Репозитории». Типы репозиториев, форматы и кеширование описаны в разделах Репозитории и форматы и Проксирование и кеширование.
Список репозиториев
В списке видны репозитории, на администрирование которых у вас есть права. Колонки: «Имя», «Формат», «Тип», «URL», «В сети», «Источник».
- «URL» — адрес для клиентов; для репозиториев Docker (OCI) показывается pull-референс с пометкой «pull ref».
- «В сети» — обслуживается ли репозиторий клиентами. При значении
noзапросы к нему отклоняются, а содержимое остаётся на месте: так репозиторий выводят из обслуживания, не удаляя. - «Источник» — состояние соединения с внешним реестром (только proxy):
| Состояние | Значение |
|---|---|
| «Готов» | Обращений к внешнему реестру ещё не было |
| «Доступен» | Внешний реестр отвечает |
| «Автоблокировка» | Обращения приостановлены автоматически: реестр недоступен; в подсказке — время следующей попытки |
| «Заблокирован» | Обращения заблокированы вручную настройкой репозитория |
| «Недоступен» | Реестр недоступен (автоблокировка выключена) |
Под состоянием печатается причина, если она известна:
unauthorized — реестр отклонил учётные данные;
service unavailable, bad gateway, gateway timeout — ответ самого реестра;
upstream connection failure — запрос до реестра не дошёл;
background probe failed — не прошла фоновая проверка доступности.
Причина у состояния «Доступен» означает особый случай:
реестр отвечает, но отклоняет учётные данные, а автоблокировка выключена.
Состояние в этом случае подсвечено жёлтым, а незакешированные запросы отвечают 502.
Автоблокировка снимается сама, когда внешний реестр отвечает снова. Чтобы снять её досрочно, когда реестр уже починили, а окно следующей попытки ещё не подошло, сохраните настройки репозитория кнопкой «Сохранить»: счётчик автоблокировки сбрасывается.
Создание
Нажмите «+ Новый репозиторий» и заполните форму:
«Имя», «Формат», «Тип» и хранилище фиксируются при создании — изменить их позже нельзя.
Чекбокс «в сети» оставляет репозиторий в обслуживании; сняв его, репозиторий можно создать заранее и открыть клиентам позже.
writePolicy(только hosted) — что клиентам разрешено делать с содержимым:ALLOW— публиковать, перезаписывать и удалять;ALLOW_ONCE— публиковать и удалять, но не перезаписывать уже опубликованное. Удаление разрешено, поэтому «удалить и опубликовать заново» остаётся способом заменить версию: политика запрещает перезапись, а не гарантирует неизменяемость;DENY— только чтение: отклоняются и публикация, и перезапись, и удаление.
Политика действует на всех путях записи: и на клиентах форматов, включая
docker push, и на удалении в веб-интерфейсе. Для npm, RubyGems, PyPI и Cargo форма предлагаетALLOW_ONCE— версии этих форматов принято делать неизменяемыми.Для proxy-репозитория заполните блок кеширования:
- «Remote URL» — адрес внешнего реестра; плейсхолдер подсказывает стандартный адрес для каждого формата;
contentMaxAge(минут) иmetadataMaxAge(минут) — сроки хранения кеша: положительное число задаёт минуты (по умолчанию 1440),0— проверять внешний реестр при каждом запросе,-1— кешировать бессрочно. Что относится к контенту, а что к метаданным, описано в разделе Проксирование и кеширование;negativeCache.enabledиnegativeCache.timeToLive(минут) — кеш отказов (по умолчанию 15 минут).
«Блокировать исходящие соединения» — ручная заморозка обращений к внешнему реестру: отдаётся только кеш, остальное отвечает
404.«Автоблокировка исходящих соединений» — автоматическая приостановка обращений, пока внешний реестр недоступен: кеш отдаётся, некешированные запросы отвечают
502. В форме включена по умолчанию.«Аутентификация» — учётные данные внешнего реестра: тип
username(логин и пароль) илиbearerToken(статический токен).«Параметры HTTP-запросов» — число повторных попыток (
retries), тайм-аут и суффикс User-Agent исходящих запросов.«Политики очистки» — привязка политик автоудаления, доступны политики того же формата. Что они удаляют и как запускаются, описано в разделе Политики очистки.
Формат-специфичные поля:
- Maven —
maven.versionPolicy(RELEASE/SNAPSHOT/MIXED); - raw —
raw.contentDisposition(INLINE— браузер открывает файлы,ATTACHMENT— принудительное скачивание); - Cargo proxy —
cargo.requireAuthentication(клиентcargoбудет присылать учётные данные); - Docker proxy —
insecureSkipTlsVerify(отключает проверку TLS-сертификата внешнего реестра — только для доверенных приватных реестров с самоподписанными сертификатами).
- Maven —
При создании репозитория автоматически появляется набор его привилегий (Управление доступом).
Редактирование и обслуживание
Кнопка «Изменить» открывает те же настройки, кроме зафиксированных при создании. Сохранённые секреты не отображаются: пустое поле пароля означает «оставить прежний» (подсказка «Оставьте пустым, чтобы сохранить текущий секрет»); при смене адреса реестра или типа аутентификации секрет нужно ввести заново.
Для любого proxy-репозитория в диалоге редактирования доступна кнопка «Сбросить кеш». Она не удаляет закешированное содержимое, а помечает его устаревшим: каждый следующий запрос сначала сверяется с внешним реестром и только потом отдаётся клиенту. Заодно сбрасывается кеш отказов, то есть запомненные ответы «не найдено». Операция требует привилегии на изменение репозитория; повторный вызов ничего не меняет.
Кнопка «Запустить очистку» выполняет привязанные политики очистки по этому репозиторию немедленно, не дожидаясь планового прохода. Запуск требует подтверждения: компоненты, подходящие под критерии этих политик, удаляются безвозвратно.
Удаление репозитория
Кнопка «Удалить» удаляет репозиторий вместе с артефактами. Репозиторий исчезает из каталога сразу: с этого момента запросы к нему получают ответ «не найдено». Место на диске освобождает последующая сборка мусора.
Если удаление docker-репозитория не довели до конца (например, сервер
остановили в этот момент), создание репозитория под тем же именем отвечает
ошибкой cleanup_in_progress. Доделывает удаление сборка мусора: запустите её
кнопкой «Запустить» на странице «Настройки» → «Сборка мусора».
Стартовый набор
На пустой базе создаются восемь репозиториев:
| Репозиторий | Формат | Тип | Политика записи | Назначение |
|---|---|---|---|---|
maven-central | maven2 | proxy | — | Зеркало Maven Central; контент кешируется бессрочно |
maven-releases | maven2 | hosted | ALLOW_ONCE | Релизные Java-артефакты (неизменяемые) |
maven-snapshots | maven2 | hosted | ALLOW | Snapshot-версии |
go-proxy | go | proxy | — | Зеркало proxy.golang.org |
go-hosted | go | hosted | ALLOW | Внутренние Go-модули |
go-sumdb | raw | proxy | — | База контрольных сумм Go (sum.golang.org) |
docker-hosted | docker | hosted | ALLOW | Внутренние образы контейнеров (теги перезаписываемы) |
docker-hub-proxy | docker | proxy | — | Зеркало Docker Hub, без учётных данных |
У всех proxy-репозиториев набора включена автоблокировка.
Роль anonymous заранее имеет привилегии чтения четырёх публичных зеркал —
доступ активируется глобальным переключателем анонимного доступа.