
Собственный Git на Windows
Ну вот наступил 11111100010
год ии у меня появилось свободная минутка, чтобы написать тут что-то полезное:-)
Случилось так, что понадобился приватный git репозиторий, а покупать VIP аккаунт на github не хотелось, да и политика безопасности компании, для которой разрабатывается проект, не позволяет это делать. По этому было принято решение о развертывании собственного git-сервера. Так как я C# developer, то речь пойдет конечно же о Windows Server и IIS Server. Пользователям Linux скажу, что там установка этого "богатства" еще проще и состоит из пары команд в терминале.
Немного о платформе.
Данный git-server
был написан на C#
на ASP.NET
и представляет собой Web приложение. Все исходные коды доступны тут. Все желающие могут ознакомиться и оценить кривизну кода) А мы поехали дальше -)
Как его ставить?
Для успешной установки нам нужны
- Сам сервер на Windows Server 2008 R2/2012/2012 R2/2016 (кто-то сидит на ней?)
- Internet Information Services (IIS) 7 или 8
- .NET Framework 4.6
- visual redist 2012/2015 и CLR
- Server дистрибутив
Быстро пробежимся по основным пунктам. У меня стоит Windows Server 2012 R2. И показывать я буду на ней. Для Windows Server 2008 все примерно также. Предполагается, что Виндасервер у вас сконфигурирован и настроен. Если это не так – идите к документации)
IIS Сервер + .NET Framework.
Запускаем Server Manager (диспетчер серверов) -> Manage (Управление) -> Add Roles and Features (Добавить роли и компоненты) …

Выбрать Role-based or Feature-based Installation (установка ролей или компонентов)
Далее выбираем наш сервер

В ролях выбираем Web Server (IIS).

В компонентах жмякаем на .NET framework 4.5 и на последнем шаге выбираем нужные настройки.
Установка… Потребует перезагрузки сервера. Загружаем .NET Framework 4.6 и ставим его. Все теперь можно ребутиться.
Для любителей консоли…
Start /w pkgmgr /iu:IIS-WebServerRole;
IIS-WebServer;
IIS-CommonHttpFeatures;
IIS-StaticContent;
IIS-DefaultDocument;
IIS-DirectoryBrowsing;
IIS-HttpErrors;
IIS-HealthAndDiagnostics;
IIS-HttpLogging;
IIS-LoggingLibraries;
IIS-RequestMonitor;
IIS-Security;
IIS-RequestFiltering;
IIS-HttpCompressionStatic;
IIS-WebServerManagementTools;
IIS-ManagementConsole;
WAS-WindowsActivationService;
WAS-ProcessModel;
WAS-NetFxEnvironment;
WAS-ConfigurationAPI
Git Server
Всё, теперь можно перейти к непосредственно развёртыванию git сервера. Разархивируем содержимое дистрибутива в wwwroot
IIS-сервера (C:\inetpub\wwwroot
) и даём права учетной записи IIS_IUSERS
на модификацию каталога App_Data
.

Запускаем IIS Manager и конвертируем Git в приложение.

После конвертации жмем Action – Browse (Управление приложением – обзор) и у нас должен открыться сайтик с формой для входа. Теперь он доступен по адресу IP сервера\git
в локальной сети. При желании его можно вывезти во внешнюю сеть и вообще делать с ним все что душе угодно!
Настройка.
По стандарту логин пароль для входа admin\admin.

В настройках можно указать другой путь для хранения файлов, изменить язык и вообще сделать много полезного)

Можно добавлять новых пользователей и осуществлять контроль видимости репозиториев, выдавать исключительные права пользователям. Также можно объединять пользователей в команды и управлять ими. На пример команде Core Developers
будут доступны все ветки в репозитории, а команде Testers
только ветка Master.
P.s.
Я надеюсь данная статья была полезна для вас. Ставьте Like за встроенный редактор кода и подсветку синтаксиса))) Приятного кодинга!