Я давно хотел, чтобы мои репозитории хранились там, где я их полностью контролирую — на моём домашнем сервере.

В итоге перенёс всё с облачного GitLab в локальный Forgejo. Сам перенос занял примерно 10 минут.

Почему вообще решил переезжать

Причины две:

  • приватность;
  • риски потери данных или доступа в облачном сервисе.

Для меня это не история «облако плохое», а история про контроль: где живёт мой код и кто им управляет.

Что переносил

  • 17 репозиториев;
  • переносил именно git-репозитории;
  • без Issues/MR/wiki/CI (в моём случае этого не требовалось).

Как это сделал

Честно: руками мигратор с нуля не писал. Поставил задачу Claude Code и дал два токена:

  • GitLab;
  • Forgejo.

Дальше скрипт сделал всё по шагам:

  1. По API получил список репозиториев из GitLab.
  2. Склонировал репозитории по SSH.
  3. По API создал репозитории в Forgejo.
  4. Добавил второй remote.
  5. Запушил в новый remote.

И всё. Без ручной рутины и без приключений.

Результат

Теперь репозитории лежат на моём домашнем сервере — ровно как и планировал. Цель переезда достигнута: больше контроля и спокойствия за данные.

Вывод

Это тот случай, когда ИИ реально экономит время: ты формулируешь задачу и требования, а рутинную автоматику делегируешь.

Если будет интересно — в следующем посте покажу, какой именно промпт я дал Claude Code, чтобы он собрал рабочий скрипт миграции.