mysurik.ru

Forgejo — поднял свой Git сервер вместо GitHub и не пожалел

Forgejo — поднял свой Git сервер вместо GitHub и не пожалел

Приватные репозитории на GitHub стали платными, и меня это бесило. Плюс новости про Copilot и лицензии вообще добили. Я решил поднять свой Git-сервер и остановился на Forgejo. Сейчас расскажу, как это было, что получилось и почему я не жалею о переезде.

Почему я ушёл с GitHub

Проблема была не только в деньгах. Меня беспокоили новости про то, как компания использует код пользователей для обучения нейросетей и меняет условия лицензий. Я хотел контролировать свои репозитории и не зависеть от прихотей большого сервиса. Свой Git-сервер решил все эти вопросы.

Конечно, GitHub удобен, и я пользовался им годами. Но когда ограничения и новости перевесили удобство, я понял, что пора меняться. Начал искать альтернативу, которую можно поставить на свой сервер, и быстро нашёл подходящий вариант.

Почему именно Forgejo

Сначала я смотрел в сторону Gitea, но выяснил, что проект форкнулся в Forgejo. Разработчики ушли в своё сообщество и активно развивают именно Forgejo. Я решил не рисковать и взять активно развивающийся вариант. Выбор оказался правильным: проект живой, обновления выходят регулярно.

Forgejo распространяется бесплатно и с открытым исходным кодом. Это значит, что я контролирую всё, что работает на моём сервере. Для человека, который ценит независимость, это огромный плюс. Установка оказалась проще, чем я ожидал.

Установка через Docker Compose

Установка Forgejo заняла буквально пятнадцать минут. Я написал файл Docker Compose, в котором описал два сервиса: базу данных Postgres и сам Forgejo. Запустил контейнеры — и всё заработало. Никакой ручной настройки серверов и зависимостей, всё из коробки.

Веб-интерфейс открылся по адресу сервера, и я прошёл первичную настройку: создал аккаунт администратора, указал адрес сайта и включил нужные функции. Через несколько минут сервер был готов принимать мои репозитории. Процесс настолько простой, что удивился, почему не сделал это раньше.

Миграция с GitHub

Больше всего я боялся миграции репозиториев. Но оказалось, что боялся зря. В админке Forgejo есть кнопка импорта репозитория: указываешь адрес на GitHub, вводишь доступ, и Forgejo сам перетаскивает проект вместе с историей коммитов. Я перетащил все свои проекты за один вечер.

Перенеслись не только коммиты, но и issues, pull requests и вики. Практически ничего не потерялось. Клонировать репозитории и продолжать работать я смог сразу же. Миграция прошла настолько гладко, что я почти разочаровался — ожидал большего квеста.

CI/CD через Woodpecker

Отдельная радость — непрерывная интеграция. Forgejo умеет работать с Woodpecker CI, и это почти как GitHub Actions, только своё. Я прикрутил Woodpecker и запустил раннеры прямо на том же сервере. Теперь сборка и тесты моих проектов выполняются у меня, без внешних сервисов.

Настройка заняла немного времени, но результат того стоил. Каждый коммит автоматически собирается и проверяется. Ошибки находятся сразу, а не после деплоя. Для меня это огромный шаг вперёд в автоматизации.

Что даёт полный контроль

Самое приятное в своём Git-сервере — отсутствие лимитов на приватные репозитории. Сколько бы проектов я ни создавал, ограничений нет. И код не уходит за границу, остаётся у меня на сервере. Эти два момента закрывают все мои претензии к GitHub.

Из коробки Forgejo даёт всё необходимое: issues, pull requests, actions, wiki. Это полноценная платформа для разработки, а не урезанная версия. Я пользуюсь ей ежедневно и не испытываю неудобств.

Бэкапы и обслуживание

Безопасность и сохранность кода — важный вопрос. Я настроил бэкап репозиториев через rsync на отдельный диск. Теперь даже если с сервером что-то случится, код останется целым. Это простая и надёжная схема, которой я доверяю.

Обслуживание Forgejo сводится к обновлению контейнера. Останавливаю старый, подтягиваю новый образ, запускаю — и всё работает. Пара минут раз в несколько недель. Никакой рутины, которой я боялся, переходя на своё решение.

Какое железо я использовал

Мой Forgejo работает на домашнем сервере, и для него не нужно мощное железо. Даже пара ядер и пара гигабайт памяти справятся с десятком проектов. Я выделил под Forgejo контейнер с Ubuntu, чтобы всё было изолировано и не мешало другим сервисам. Это удобно и безопасно.

Если вы планируете тяжёлые сборки через Woodpecker, ресурсов может понадобиться больше. Но для обычного хранения кода и переписки текущих проектов хватает скромной машины. Главное — стабильное питание и бэкапы, чтобы код не потерялся.

Организация доступа и безопасности

Доступ к серверу я настроил через SSH-ключи, чтобы не светить пароли. Веб-интерфейс закрыл SSL-сертификатом, так что данные идут по шифрованному соединению. Для входа в панель включил двухфакторную аутентификацию. Эти простые меры защищают мой код от посторонних.

Также я ограничил количество попыток входа и настроил уведомления о подозрительной активности. Безопасность своего сервера я не оставляю на потом — это важно, когда хранишь рабочий код. Лучше потратить полчаса на защиту, чем потом восстанавливать данные.

Как я организовал репозитории

На Forgejo я организовал репозитории по проектам и создал организации для совместной работы. У каждого проекта своя вики и свои задачи. Это помогло навести порядок, которого не было на GitHub. Возможность гибко настраивать права доступа тоже пригодилась.

Приватные репозитории я сделал по умолчанию, открывая доступ только по необходимости. Так код остаётся под контролем, а публикация происходит осознанно. Forgejo даёт полную свободу в этом вопросе, что мне очень нравится.

Работа с командой

Несмотря на то что я начинал один, я настроил сервер и для командной работы. Можно приглашать коллег, выдавать им права и вести совместную разработку. Forgejo поддерживает всё, что нужно для команды: ревью кода, обсуждения, назначение задач.

Мне нравится, что всё это работает на моём сервере и не зависит от внешних сервисов. Даже если интернет-сервис закроется, моя команда продолжит работать. Такая независимость дорогого стоит, особенно для проектов, которые важны.

Почему я не вернусь на GitHub

Честно говоря, у меня нет причин возвращаться на GitHub. Forgejo закрывает все мои задачи, работает быстро и не имеет лимитов. Конечно, у GitHub больше экосистема и готовых интеграций, но для моих проектов это не критично. Свобода и контроль важнее.

Я бы посоветовал каждому, кто держит свой сервер, попробовать Forgejo. Даже если вы останетесь на GitHub, знание альтернативы придаёт уверенности. А если решитесь переехать — вы знаете, что путь простой и безболезненный.

Веб-интерфейс и удобство

Интерфейс Forgejo мне сразу понравился: чистый, быстрый и понятный. Всё, что нужно разработчику, находится под рукой: репозитории, задачи, пул-реквесты. Ничего лишнего, что раздражает на больших сервисах. Адаптация заняла у меня пару дней, но уже через неделю я работал как раньше.

Приятно, что интерфейс полностью настраивается: можно менять темы, языки и раскладку. Я оставил русский язык для удобства. Для тех, кто привык к GitHub, Forgejo покажется знакомым, потому что клоны интерфейсов похожи. Переход дался мне легко.

Возможности автоматизации

Forgejo позволяет автоматизировать рутину через веб-хуки. Например, можно уведомлять чат о новых коммитах или запускать сборку при каждом пуше. Я настроил несколько таких сценариев, и теперь часть ручной работы делается сама. Это экономит время каждый день.

Веб-хуки работают с любыми сервисами, которые умеют принимать запросы. Гибкость огромная, и ограничения только в фантазии. Для меня автоматизация — одна из главных причин остаться на своём сервере. Возможности растут вместе с потребностями.

Проблемы, с которыми я столкнулся

Не обошлось и без небольших трудностей. Один раз после обновления изменился формат данных, и пришлось немного перенастроить. Также я потратил время на разбор того, как правильно ограничить доступ из интернета. Но все эти вопросы решаются по документации и форумам.

Главный вывод: если что-то непонятно, в сообществе Forgejo всегда найдутся ответы. Проект живой, люди активные, помощи достаточно. Я привык решать вопросы сам, а здесь это ещё и приятно, потому что сообщество дружелюбное.

Планы на дальнейшее развитие

В будущем я планирую перевести на Forgejo ещё несколько проектов и, возможно, поднять дополнительные раннеры для CI. Хочу также настроить более продвинутые бэкапы и посмотреть в сторону интеграций с другими моими сервисами. Возможности для роста есть.

Если у вас есть вопросы по установке или использованию Forgejo — пишите в комментариях, я поделюсь опытом. Начать проще, чем кажется, а результат точно порадует. Свой Git-сервер — это реальная свобода и контроль.

Что мне нравится больше всего

Если выделить главное, что мне нравится в Forgejo, — это независимость. Я не завишу от планов компании, не переживаю за лимиты и не беспокоюсь, что сервис изменит условия. Всё работает на моём оборудовании и под моим контролем. Это ощущение свободы дорогого стоит.

Второе по важности — простота. Forgejo не перегружен лишними функциями, которые редко используются. Всё сделано по делу и интуитивно понятно. Для человека, который ценит своё время, это идеальный инструмент для работы с кодом.

Советы тем, кто хочет переехать

Тем, кто хочет повторить мой путь, советую не откладывать. Начните с установки Forgejo на тестовой машине, погоняйте пару дней, а потом переносите основные проекты. Так вы освоитесь без спешки и не будете рисковать рабочим кодом. Постепенность избавит от лишнего стресса.

Перед миграцией обязательно сделайте полный бэкап репозиториев на GitHub. Даже если миграция пройдёт гладко, запасной план не помешает. Следуя этим простым советам, вы переедете на свой Git-сервер без потерь и нервов.

Мои впечатления в целом

Подводя итог своим впечатлениям, скажу честно: переезд на Forgejo стал одним из лучших технических решений, которые я принимал. Я получил удобный, быстрый и полностью свой инструмент для работы с кодом. Все опасения оказались напрасными, а преимущества — реальными.

Если вы сомневаетесь, попробуйте. В худшем случае вы потратите вечер на эксперимент, в лучшем — получите свободу, которой не было на больших сервисах. Я свой выбор сделал и ни разу не пожалел.

Мой итог

Переезд с GitHub на свой Git-сервер я не пожалел ни разу. Forgejo оказался удобным, быстрым и полностью управляемым. Установка простая, миграция безболезненная, а возможности не уступают большим сервисам. Теперь мой код живёт там, где я его контролирую.

Если вы тоже устали от лимитов и новостей про большие сервисы — попробуйте поднять свой Git. С Forgejo это легко, а преимущества вы почувствуете с первого дня.

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *