Self-hosted git-сервер: Forgejo/Gitea, CI/CD, LDAP и миграция
Если вы используете GitLab CE для команды из 10–15 разработчиков, то знаете, сколько ресурсов он требует: минимум 4 ГБ RAM для старта, а в production — 8–16 ГБ плюс отдельный Postgres, Redis и Sidekiq. Для небольших проектов это избыточно и дорого. Мы предлагаем лёгкую альтернативу — Forgejo или Gitea. Один бинарник, 1 ГБ RAM, 50 МБ на диске — и вы получаете полноценный git-сервер с web-интерфейсом, issue tracker, а теперь ещё и встроенный CI через Forgejo Actions. Наша команда за несколько лет развернула более 50 таких инсталляций для fintech, e-commerce и SaaS. Ни одного отказа по вине платформы. В отличие от GitLab, Forgejo не требует выделенного сервера — достаточно VPS с 1 ГБ RAM. Экономия на облачных серверах составляет 3–5 раз, что снижает месячные расходы с $500 до $150.
Какие проблемы решает Forgejo?
Forgejo решает три основные задачи: ресурсы, сложность и CI/CD. Рассмотрим каждую подробнее:
- Ресурсы: GitLab CE съедает до 8 ГБ RAM даже при 10 пользователях. Forgejo работает на 1 ГБ без просадок, что снижает стоимость облачных серверов в 3–5 раз.
- Сложность: GitLab требует отдельного Postgres, Redis, Sidekiq. Forgejo — один бинарник или Docker Compose из двух контейнеров (app + db).
- CI/CD: GitLab CI нужен GitLab Runner. Forgejo Actions использует синтаксис GitHub Actions и не требует внешних сервисов.
Почему Forgejo экономичнее GitLab?
Сравнение ресурсов:
| Параметр | Forgejo | GitLab CE |
|---|---|---|
| Минимальная RAM | 1 ГБ | 4 ГБ |
| Рекомендуемая RAM (50 пользователей) | 2 ГБ | 8 ГБ |
| Диск | 50 МБ | 1 ГБ+ |
| Зависимости | Postgres | Postgres, Redis, Sidekiq |
| Время развёртывания | 30 мин | 2–4 часа |
Forgejo — форк Gitea, появившийся после конфликта в сообществе. Технически они совместимы: конфиги и API переносятся без изменений. Forgejo получает патчи на 30% быстрее (по данным OpenHUB). Для новых проектов мы рекомендуем Forgejo.
Варианты развёртывания
| Способ | Сложность | Время | Гибкость |
|---|---|---|---|
| Docker Compose | Низкая | 30 мин | Средняя |
| Бинарный файл | Средняя | 1 час | Высокая |
| Helm-чарт (Kubernetes) | Высокая | 2 часа | Максимальная |
Как настроить Forgejo с CI/CD за час?
-
Развёртывание через Docker Compose – создайте файл
docker-compose.yml:version: "3" services: forgejo: image: codeberg.org/forgejo/forgejo:8 container_name: forgejo environment: - USER_UID=1000 - USER_GID=1000 - FORGEJO__database__DB_TYPE=postgres - FORGEJO__database__HOST=db:5432 - FORGEJO__database__NAME=forgejo - FORGEJO__database__USER=forgejo - FORGEJO__database__PASSWD=secret volumes: - ./data:/data ports: - "3000:3000" - "222:22" restart: unless-stopped db: image: postgres:16 environment: - POSTGRES_USER=forgejo - POSTGRES_PASSWORD=secret - POSTGRES_DB=forgejo volumes: - ./postgres:/var/lib/postgresql/dataЗапустите:
docker-compose up -d.Настройте через web-интерфейс – укажите домен, почту, отключите регистрацию. Основные параметры в
/data/gitea/conf/app.ini:[server] DOMAIN = git.company.com ROOT_URL = https://git.company.com/ SSH_DOMAIN = git.company.com SSH_PORT = 22 DISABLE_SSH = false [service] DISABLE_REGISTRATION = true REQUIRE_SIGNIN_VIEW = true REGISTER_EMAIL_CONFIRM = trueDISABLE_REGISTRATION = trueобязательно для закрытой команды. Настройте Forgejo Actions – добавьте workflow-файл.forgejo/workflows/ci.yaml:on: [push] jobs: test: runs-on: docker steps: - uses: actions/checkout@v4 - name: Run tests run: go test ./...Зарегистрируйте act runner:
act_runner register \ --instance https://git.company.com \ --token <runner_token> \ --name my-runner \ --labels docker:docker://node:20-bookwormRunner выполняет задачи в изолированных Docker-контейнерах. Весь процесс занимает 30–60 минут.
Пример конфигурации для production
Для production-среды рекомендуем добавить резервирование базы данных и настроить автоматическое обновление SSL-сертификатов через Let's Encrypt. Используйте внешний Postgres с репликацией и регулярные бэкапы репозиториев. Также настройте мониторинг через Prometheus и оповещения в Slack.
Как перенести репозитории из GitHub или GitLab?
Forgejo поддерживает импорт с сохранением issues, pull requests, milestones и wiki. Для массовой миграции используйте API:
for repo in $(gh repo list myorg --json name -q '.[].name'); do curl -X POST https://git.company.com/api/v1/repos/migrate \ -H "Authorization: token $FORGEJO_TOKEN" \ -H "Content-Type: application/json" \ -d "{\"clone_addr\":\"https://github.com/myorg/$repo\",\"repo_name\":\"$repo\",\"mirror\":false,\"private\":true}" doneАвтоматизация миграции 50 репозиториев занимает не более 2–3 дней.
Что входит в работу
- Установка и настройка Forgejo (или Gitea) с HTTPS и LDAP.
- Интеграция с LDAP/SSO (Active Directory, OpenLDAP, Keycloak).
- Настройка Forgejo Actions и регистрация act runner.
- Миграция репозиториев из GitHub, GitLab, Bitbucket с сохранением истории.
- Написание документации и обучение команды.
- Гарантийная поддержка 1 месяц.
Наши DevOps‑инженеры имеют сертификаты CKA и 5+ лет опыта в Kubernetes и GitOps. Выполнено более 50 проектов по миграции и настройке Git‑серверов для fintech и e‑commerce.
Сроки ориентировочно
- Базовая установка Forgejo/Gitea с HTTPS и LDAP – от 4 до 8 часов.
- Добавление Forgejo Actions и миграция – от 1 до 3 дней.
- Полный проект под ключ – от 3 до 5 дней.
Стоимость рассчитывается индивидуально после аудита вашей инфраструктуры. Закажите развертывание Forgejo с CI/CD и LDAP под ключ — получите готовый git-сервер за 4 часа. Свяжитесь с нами для аудита вашей инфраструктуры. Получите консультацию DevOps-инженера по настройке Forgejo.
Forgejo — открытая платформа для управления git-репозиториями.







