Self-hosted git-сервер: Forgejo/Gitea, CI/CD, LDAP та міграція

GitLab CE виснажує ресурси сервера навіть для невеликої команди, а його налаштування та супровід забирають час. Ми розгортаємо легкий self-hosted Git-сервер на Forgejo або Gitea з CI/CD та LDAP. Наша команда реалізує проєкт під ключ — від міграції репозиторіїв до налаштування пайплайнів і подальшої підтримки, забезпечуючи стабільну роботу без зриву термінів.
Часті запитання

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 за годину?

  1. Розгортання через 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 = true

    DISABLE_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-bookworm

    Runner виконує завдання в ізольованих 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-репозиторіями.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1368
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    815
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1139