Как я развернула внутренний Git-сервер без GitHub — опыт, грабли и радость контроля

ГлавнаяКак я развернула внутренний Git-сервер без GitHub — опыт, грабли и радость контроля

Содержание

Когда GitHub в очередной раз начал тормозить в момент дедлайна, а GitLab — вносить странные ограничения, я задумалась: а зачем мне вообще внешний хостинг, если у меня есть собственный VPS? Зачем зависеть от чужих политик и API, если можно просто поднять свой Git-сервер и ни от кого не зависеть?

Спойлер: это проще, чем кажется. В этой статье я расскажу, как настроить внутренний Git-сервер — как на Linux, так и на Windows, без лишнего пафоса и с упором на реальные задачи.


Зачем поднимать свой Git-сервер?

  • 💼 Контроль — вы сами решаете, где хранятся ваши репозитории;
  • 🔒 Безопасность — особенно если работаешь с клиентскими проектами или приватным кодом;
  • 🚀 Скорость — локальное подключение, особенно внутри одной VPS-сети, реально быстрее;
  • 🛠 Гибкость — автоматизация, свои хуки, CI/CD — всё под рукой;
  • 💰 Экономия — нет ограничений на приватные репозитории или команду.

У меня был опыт и с Gitea, и с GitBucket, но сегодня расскажу про самую лёгкую и «чистую» схему — на базе SSH и

git init --bare
.


Вариант 1: Лёгкий Git-сервер на Linux VPS

1. Устанавливаем Git

Если он ещё не установлен:

sudo apt update sudo apt install git

Проверяем:

git --version

2. Создаём пользователя
git

sudo adduser git

Это безопаснее, чем работать от root.

3. Добавляем ключ SSH для доступа

С локальной машины:

ssh-copy-id git@<ip-сервера>

Теперь можно заходить без пароля.

4. Создаём «голый» репозиторий

Подключаемся к серверу и создаём папку:

mkdir -p /home/git/myproject.git cd /home/git/myproject.git git init --bare

Это и есть bare git репозиторий — без рабочего дерева, только история и структура.

5. Работаем с репой

На локальной машине:

git remote add origin git@<ip-сервера>:/home/git/myproject.git git push origin master

Вот и всё. У вас теперь свой Git-сервер, без GitHub и сторонних сервисов.


Вариант 2: Git-сервер на Windows

Когда мне нужно было настроить Git сервер на Windows (для локальной сети в офисе), я выбрала Git for Windows + OpenSSH Server.

1. Скачиваем Git for Windows

Установка простая. Во время установки выберите опцию «Run Git from the Windows Command Prompt» и «Use OpenSSH».

2. Добавляем путь до
git
в переменные окружения, если не добавился

3. Создаём папку и инициализируем bare-репозиторий

cd D:\git-repos mkdir myproject.git cd myproject.git git init --bare

4. Настраиваем SSH-доступ

Тут сложнее, чем на Linux, но можно использовать Win32-OpenSSH. Либо поднять Git over HTTPS с помощью IIS, но это уже другой уровень сложности.

На практике я чаще использую Git server на VPS Linux, а на Windows — только если нужен доступ изнутри локальной сети без Интернета.


Инструменты, которые помогут

  • Gitea — лёгкий web-интерфейс, альтернатива GitHub;
  • GitBucket — похож на GitLab, но проще;
  • Bonobo Git Server — если нужна GUI-админка на Windows;
  • git-shell
    — ограничивает доступ к командам на сервере;
  • Post-receive hooks — для автосборки, деплоя, уведомлений и CI.

Примеры из жизни

У меня есть два VPS — один в Германии, другой в Финляндии. На обоих настроен внутренний Git-сервер, который я использую как staging и production репозитории для личных проектов. Никакого GitHub, никакой зависимости от внешнего API. Всё под контролем.

А ещё один раз я разворачивала Git-сервер прямо на роутере с OpenWRT, потому что заказчик хотел 100% изоляцию — и это тоже сработало!


Создать Git-сервер без GitHub — это не про сложность, а про контроль. Иногда это даже веселее, чем щёлкать мышкой в интерфейсе GitLab. Особенно когда ты знаешь, что в любой момент можешь переключиться между репами, добавить новый хук, автоматизировать деплой — и всё это без чужих ограничений и абонентки.

Если хочешь по-настоящему разобраться в Git — начни с сервера. Он даст тебе совсем другое понимание того, как работает этот инструмент.

Делаем год чуть длиннее

365 дней VPS? А как насчёт 395?

Месяц в подарок
COPIED
NEWCOMM COPIED