Новые релизы
Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.
Forgejo размещает Git-репозитории, pull request, задачи, wiki и реестр пакетов на собственном сервере. Рецепт использует rootless-образ, PostgreSQL и закрывает регистрацию, а web и SSH по умолчанию доступны только с localhost.
Forgejo — свободный Git-сервис для команд и личных проектов. Он объединяет репозитории, code review, задачи, проекты, wiki, releases и package registry, не передавая исходный код внешней платформе.
Этот рецепт запускает закреплённый rootless-образ Forgejo 16.0.3 рядом с PostgreSQL 17. Web-интерфейс и встроенный SSH-сервер привязаны к localhost; открытая регистрация отключена. Forgejo Actions и runner намеренно не входят в рецепт.
Полный smoke-тест прошёл на amd64 и arm64; backup и restore ещё не проходили
практическую проверку. Перед публикацией web нужен HTTPS reverse proxy. SSH
следует открывать только после настройки администратора, ключей и firewall.
Репозитории, вложения и конфигурация находятся в /var/lib/gitea; база хранится
отдельно в PostgreSQL.
Это сохранённые результаты отдельных проверок, а не данные в реальном времени. Неизвестный статус означает, что проверка ещё не выполнялась.
Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.
Результат отдельного сканирования Docker-образов, а не проверки Compose.
Новый major находится сравнением номеров версий. Вердикт о совместимости заносится вручную после чтения release notes и порядка миграции.
Изменения upstream Compose относительно проверенного рецепта.
Проверка закреплённых тегов образов на наличие новых версий.
От наблюдения к действию
Рецепт уже закрепляет последний известный релиз. Ниже показаны сохранённые основания для этой версии.
16.0.316.0.3Для источника с ручным отслеживанием нет точной ссылки на release notes. Начните с источников проекта ниже.
Номера версий не пересекают major-границу совместимости. Вердикт о совместимости не записан.
Смена тегов образов сейчас не планируется.
Ручные шаги после обновления. Шаги конкретного релиза всё равно берутся из release notes и инструкции по установке.
Смена версии сейчас не планируется. Рецепт содержит процедуру backup. Restore не проверен.
Точная проверка уровня «Проверен полностью» для этой версии записана 2026-09-03.
Статус показывает, насколько опубликованный рецепт покрывает требования каждого уровня.
Минимальная конфигурация для локальной сети или доступа через VPN.
Нужно добавить вручную: один сервер, локальный доступ, минимум компонентов.
Публичная установка с защищённым доступом и резервными копиями.
Нужно добавить вручную: домен, https через reverse proxy, backup вне сервера.
Конфигурация для предсказуемой эксплуатации и наблюдаемости.
Нужно добавить вручную: внешний мониторинг, лимиты cpu и памяти.
Собрать под свой сервер
Ответьте на пять вопросов и скачайте готовый комплект Forgejo.
Скриншоты ещё не добавлены.
Сначала прочитайте полную инструкцию: в ней описаны доступ извне, backup и расположение данных.
cp .env.example .envdocker compose up -ddocker compose psНужны Ubuntu 22.04+ или Debian 12+, Docker Engine и Compose v2.24+. Выделите минимум 1 CPU, 512 МБ RAM и 5 ГБ диска; рекомендуется 1 ГБ RAM и отдельный запас под Git-репозитории, packages и резервные копии.
docker --version
docker compose version
mkdir -p ~/services/forgejo
cd ~/services/forgejo
cp .env.example .env
chmod 600 .env
openssl rand -base64 36
Запишите результат последней команды в POSTGRES_PASSWORD, замените
git.example.com реальным доменом и не публикуйте .env. FORGEJO_HTTP_PORT и
FORGEJO_SSH_PORT задают локальные порты, FORGEJO_DOMAIN,
FORGEJO_SSH_DOMAIN и FORGEJO_ROOT_URL — внешние адреса, POSTGRES_DB,
POSTGRES_USER, POSTGRES_PASSWORD — доступ к БД, FORGEJO_DATA_VOLUME и
FORGEJO_DB_VOLUME — volumes, FORGEJO_BACKUP_DIR — каталог архивов.
docker compose config
docker compose pull
docker compose up -d --wait
curl --fail http://127.0.0.1:3000/api/healthz
read -rsp 'Пароль администратора: ' FORGEJO_ADMIN_PASSWORD
docker compose exec forgejo forgejo admin user create --admin --must-change-password --username admin --email admin@example.com --password "$FORGEJO_ADMIN_PASSWORD"
unset FORGEJO_ADMIN_PASSWORD
Пароль не записывается в shell history, но кратковременно передаётся процессу
внутри контейнера; сразу смените его через UI. Открытая регистрация отключена.
Постоянные данные Forgejo находятся в /var/lib/gitea.
Оставьте оба bind на 127.0.0.1. Публикуйте web через HTTPS proxy. SSH сначала
проверяйте через туннель: ssh -L 2222:127.0.0.1:2222 user@server и затем
ssh -p 2222 git@localhost. Для публичного Git over SSH замените только bind
SSH в compose.yaml на адрес VPS, например ${SERVER_IP}:${FORGEJO_SSH_PORT}:2222,
добавьте SERVER_IP в .env и разрешите этот TCP-порт в firewall. Web-порт 3000
оставьте локальным.
Предпочтительны VPN или SSH-туннель. Если proxy находится на другом LAN-узле,
замените web bind на конкретный приватный IP сервера и разрешите соединения
только от proxy. Не используйте 0.0.0.0 без firewall.
Замените домен в .env и одном файле из proxy/. Caddy получает сертификат
автоматически, Nginx ожидает Certbot, Traefik использует resolver letsencrypt.
Proxy должен передавать Host, X-Forwarded-Proto и клиентский адрес. Если
Traefik работает в контейнере, замените 127.0.0.1 на доступный host gateway.
chmod +x backup.sh restore.sh
./backup.sh
Скрипт останавливает Forgejo, делает native pg_dump, архивирует полный data
volume и снова запускает сервис. Это согласует Git-репозитории, вложения и БД.
Зашифруйте архив: в нём есть приватный код, ключи и конфигурация. Храните копию
вне сервера и регулярно проверяйте восстановление.
Восстановление необратимо заменяет data volume и базу. Используйте ту же версию
Forgejo, проверьте .env, затем:
./restore.sh ./backups/forgejo-YYYYMMDDTHHMMSSZ.tar
docker compose ps
curl --fail http://127.0.0.1:3000/api/healthz
Процедура ещё не проверена практическим restore-тестом; сначала испытайте её на отдельном сервере.
Создайте backup, прочитайте release notes и upgrade guide. Образ закреплён прямо
в compose.yaml; замените 16.0.3-rootless на проверенную точную версию и
выполните docker compose pull && docker compose up -d --wait. При переходе на
новую major-ветку нужны ручная проверка требований и forgejo doctor check --all.
Не запускайте старый образ поверх мигрированной БД. Верните прежний тег образа и
восстановите полный pre-update архив через restore.sh. После миграций откат без
восстановления согласованной копии не поддерживается.
docker compose down сохраняет данные. После проверки backup полное удаление:
docker compose down
docker volume rm forgejo-data forgejo-database
rm -rf ~/services/forgejo
Источники: Docker и rootless, upgrade и backup и configuration cheat sheet.
docker compose ps
docker compose logs --tail=200 forgejo database
docker inspect --format '{{json .State.Health}}' "$(docker compose ps -q forgejo)"
Проверьте пароль БД, свободное место и доступ к volumes. Endpoint
/api/healthz должен вернуть JSON со status: pass.
/var/lib/giteaRootless-контейнер работает как UID/GID 1000. Не меняйте user без переноса
владельца данных. Для bind mount заранее выполните chown -R 1000:1000.
Проверьте FORGEJO_ROOT_URL, FORGEJO_DOMAIN, FORGEJO_SSH_DOMAIN и
FORGEJO_SSH_PORT, затем пересоздайте контейнер: docker compose up -d --force-recreate.
Это безопасное поведение: порт привязан к localhost. Сначала проверьте его через
туннель. Для публичного доступа следуйте разделу VPS, измените только SSH bind и
проверьте firewall командой ssh -vvv -p 2222 git@git.example.com.
Проверьте curl http://127.0.0.1:3000/api/healthz, адрес upstream и доступность
localhost из контекста proxy. Контейнерный proxy не видит localhost хоста.
Fossary — независимый информационный каталог, не связанный с разработчиками представленных приложений. Мы собираем сведения из открытых источников и проверяем опубликованные рецепты, но не разрабатываем, не распространяем и не контролируем эти приложения.
Публикация карточки или статус проверки не являются требованием, навязыванием либо персональной рекомендацией использовать приложение. Вы самостоятельно решаете, подходит ли оно вам, и используете его на свой риск. Мы не гарантируем безопасность, доступность или пригодность приложения и, в пределах, допускаемых законом, не отвечаем за вызванные им потери или ущерб. До установки проверьте лицензию, настройки безопасности, обработку данных и резервное копирование.