Если вы знакомы с системой контроля версий Git, вы, скорее всего, слышали о сайтах социального программного обеспечения, использующих Git, таких как GitHub, Gitorious и Sourceforge. Эти сайты отлично подходят для совместной работы, но что, если вы хотите разместить частный репозиторий Git на своем личном веб-сайте?
GitList - это интерфейс PHP для Git, который украшает и упрощает просмотр ваших репозиториев Git, и вы можете разместить его где угодно. Попрощайтесь с непомерными сборами за размещение вашего частного репозитория; GitList абсолютно бесплатный, и из-за его минимальных зависимостей вы даже можете запускать его на (некоторых) общих планах веб-хостинга.
Интерфейс наверняка покажется вам знакомым для пользователей GitHub! Он выглядит довольно привлекательно и современно по сравнению с более неуклюжим интерфейсом Gitweb, веб-интерфейса Git по умолчанию, и он содержит удобные для пользователя функции. Некоторые из них включают:
- Поддержка просмотра нескольких репозиториев
- Поддержка нескольких веток и тегов
- RSS-каналы
- Подсветка синтаксиса
- Статистика по вашим репозиториям
- Простота установки по сравнению с другими веб-интерфейсами Git.
Требования
Как мы упоминали ранее, вы можете установить GitList на некоторых планах общего веб-хостинга. На вашем удаленном сервере вам понадобится несколько вещей, которые есть не во всех планах общего хостинга:
- Git
- Доступ по SSH
Обратите внимание, что доступ по SSH не требуется для установки самого GitList, но он понадобится вам для создания удаленных репозиториев Git и управления ими из командной строки.
Помимо этих двух предметов вам понадобятся:
- Apache с включенным mod_rewrite или Nginx на удаленном сервере
- PHP 5.3.3 на вашем удаленном сервере
- Git на вашем локальном компьютере
Монтаж
Возьмите архив с кодом GitList с главной страницы GitList.org. Вы можете выбрать между последним стабильным выпуском, который на момент написания этой статьи был 0.3, или сборкой для разработки. Я выбрал сборку для разработки, но вы можете следовать одним и тем же инструкциям по установке в любом случае.
Распакуйте архив в каталог на вашем сайте, в который вы хотите установить GitList - не путать с каталогом, в котором установлены ваши фактические репозитории Git, о котором мы поговорим чуть позже.
С этого момента инструкции в этой статье предполагают, что вы вошли на свой сайт через SSH. Войдите в свой каталог GitList и установите права доступа 777 для подкаталога "cache" (создайте его, если он еще не существует):
[mkdir cache]chmod777 cache
Теперь переместите файл config.ini-example в config.ini:
mv config.ini-example config.ini
Откройте config.ini для редактирования в одном из текстовых редакторов, доступных на вашем удаленном сервере. Например:
vi config.ini
Для этой части у вас уже должен быть один или несколько репозиториев Git, хранящихся где-то на вашем сервере. Если нет, прочтите следующий раздел и вернитесь сюда.
Заполните раздел репозитории
в коде, указав полный путь к каталогу вашего проекта Git. Если вы не знаете полный путь, вы можете cd
в этот каталог и ввести pwd
; вывод - полный путь. В этом случае мой каталог проектов Git назывался "gitprojects", и он находился в подкаталоге "git" моего основного сайта, поэтому я ввел свой путь соответствующим образом (структура папок может различаться на разных веб-хостах, поэтому будьте осторожны):
Добавление репозитория Git на ваш сервер
Пропустите этот раздел, если вы уже настроили удаленные репозитории. Если нет, то вот один из способов сделать это.
Сначала подготовьте репозиторий Git на вашем локальном компьютере. Вы можете создать репозиторий из любого каталога. Например, предположим, что у вас есть папка с названием "черепашки" с несколькими файлами:
cd turtlesgit init#this initializes the repositorygit add*#this causes all files in the directory to be tracked for revisionsgit commit-m"Created my repo"*#commits the files and adds a comment
Теперь подключитесь к удаленному серверу по SSH, чтобы создать и инициализировать пустой репозиторий:
mkdir turtles.git &&cd turtles.gitgit--bare init
Вернитесь на свой локальный компьютер и добавьте удаленную ветку. Принято называть его "origin", но вы можете использовать любое имя по своему усмотрению (использование других имен пригодится, если вы используете одни и те же файлы в нескольких удаленных репозиториях). Следуйте формату этого примера, но соответствующим образом измените пути к файлам:
git remote add origin ssh://yourusername@yourserver.com/home/yourusername/public_html/gitprojects/turtles.git
Теперь отправьте свои файлы на удаленный сервер:
git push - все происхождение
Та-да! Теперь у вас есть удаленная копия вашего репозитория Git, которую вы можете просматривать с помощью GitList. Не забудьте сначала указать путь к родительскому каталогу в config.ini.
Безопасность вашего репозитория
Если вы беспокоитесь о том, чтобы ваш репозиторий находился подальше от посторонних глаз, с сожалением сообщаю вам, что GitList не предоставляет встроенного метода аутентификации пользователей. Однако в большинстве случаев вы можете защитить паролем каталог прямо из панели управления вашего веб-сайта. В cPanel это прямо здесь, в разделе "Безопасность":
Кроме того, вы можете вручную настроить сервер Apache, чтобы ограничить доступ для определенных пользователей.
Заключение
Размещение собственных репозиториев может дать вам дополнительные возможности и сэкономить бюджет. Независимо от того, используете ли вы Git какое-то время или у вас только начинается любопытство по поводу того, как вы можете извлечь выгоду из контроля версий, я настоятельно рекомендую вам попробовать самостоятельный хостинг и GitList - если, конечно, вы не полностью контент, оставляя контроль над вашим контентом третьим лицам.
Один комментарий
Комментарии закрыты.
Хороший! Спасибо!