Свой registry рядом с git — удобно: один SSO/аккаунт, один backup-контур, образы рядом с исходниками. Ниже — рабочая схема для Gitea/Forgejo (у меня Forgejo на git.evgn.ru, логика та же) 📦
Что получите #
docker login git.example.com
docker tag myapp:1.0 git.example.com/evgeny/myapp:1.0
docker push git.example.com/evgeny/myapp:1.0Образ живёт как package у пользователя/орг, не как «магический docker hub».
Конфиг сервера #
В app.ini (имена секций могут чуть отличаться по версии — сверяйте docs вашей):
[packages]
ENABLED = true
[registry]
ENABLED = trueКаталог данных packages должен быть на диске с местом и бэкапом (часто рядом с data/ инстанса). Права — на пользователя, от которого крутится Gitea/Forgejo.
После правки — restart сервиса.
HTTPS обязателен для docker #
Docker не любит plain HTTP registry (нужен insecure-registries — лучше не надо). Схема:
клиент → NPM/Caddy/nginx (TLS) → gitea:3000На proxy: достаточно большие client_max_body_size / proxy_request_buffering для слоёв.
Права и логин #
- В UI: пользователь с правом write на package / repo (зависит от версии и settings org).
- Personal access token с scope
write:package/read:package(названия scope смотрите в UI).
echo "$TOKEN" | docker login git.example.com -u evgeny --password-stdinТипичные ошибки:
| Симптом | Что проверить |
|---|---|
401 Unauthorized | токен, срок, scope |
denied | права на owner/package |
http: server gave HTTP response to HTTPS client | TLS / wrong URL |
| timeout на push | body size на proxy, место на диске |
Push / pull #
docker build -t git.example.com/evgeny/myapp:1.0 .
docker push git.example.com/evgeny/myapp:1.0
docker pull git.example.com/evgeny/myapp:1.0В CI — тот же login через secrets, не кладите token в Dockerfile.
Обслуживание #
- Ретеншн тегов: не копите
:latest+ 500 SHA без политики. - Бэкап каталога packages вместе с метаданными инстанса.
- Мониторинг диска: registry растёт незаметно.
Итог #
Packages + TLS + token с минимальным scope + pin тегов в compose. Этого достаточно, чтобы не тащить отдельный Harbor «на три домашних образа» 🚢