GitHub.com как хостинг сайтов

17 October 2010 #github #hosting #emacs

Недавно наткнулся на страницу pages.github.com, на которой с удивлением узнал о том, что сервис github.com предоставляет услуги хостинга статических сайтов.

Довольно долго не мог собраться, попробовать в деле. И только вчера дошли руки. Сейчас хочу поделиться своими находками.

После регистрации на сервисе достаточно создать репозиторий вида username.github.com, и разместить в нем html-файлы со всеми стилями, изображениями. Автоматически будет создан сайт с доменным именем по имени репозитория. И каждый push в репозиторий будет сопровождаться уведомлением на электронную почту и внутреннюю почту github.com.

Существует возможность использования доменного имени второго уровня. Для этого достаточно в корневом каталоге репозитория создать файл CNAME в содержимом которого указывается тот домен, который будет назначен. И затем в панели доменного регистратора создаем запись вида CNAME, в которой указываем новый домен и направляем его на username.github.com.

Как будут создаваться html-файлы, зависит только от автора. Я воспользовался org-mode, о котором уже писал в своей статье Создание сайтов с помощью Emacs. И создал страничку juev.github.com, репозиторий можно найти на странице juev.github.com. На которой пока ничего не представлено, кроме приветствия. Основная идея заключается только в использовании библиотеки org-info.js, которая позволяет из одного довольно крупного файла создать массу небольших страниц, управление и переход по которым можно осуществлять с помощью клавиатуры. Попробуйте на моей странице juev.github.com нажать клавишу ?. Увидите краткую справку по клавиатурным комбинациям. Очень удобная вещь для создания документации в вебе!

Однако есть проблема в том, что нет возможности организовать rss каналы. Для этого требуется генерация xml файла с определенным содержимым. И последующее внесение изменений по мере публикации новых статей. Руками это делать довольно проблематично, хотя и не невозможно. В случае использования org-mode придется просто отказаться от добавления rss-канала.

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

GitHub.com помимо размещения обычных статических сайтов, позволяет использовать свой движок для генерации web-страниц. Который называется Jekyll. Создав в репозитории определенную структуру каталогов, наполненную определенными файлами и прописав конфигурацию сайта, загружаем репозиторий на сервер и спустя пару минут получаем готовый сайт. В котором будет индивидуальное оформление, будет работать rss-канал или atom-канал (в зависимости от того, что выбрал автор), и новые записи создаются путем добавления новых html-файлов в одном из каталогов сайта. После размещения нового файла спустя минуту-две автоматически создается новая запись на сайте. Таким образом есть возможность вести сайт в режиме блога.

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

Так как сайт статический и помимо файлов, которые в любом случае доступны всем желающим, то создавать приватный репозиторий не вижу смысла. А 300 мегабайт вполне достаточно для того, чтобы вести несколько небольших сайтов. Возможность использования собственного доменного имени – большой плюс данного сервиса. Таким образом получается, что GitHub.com является очень хорошим бесплатным сервисом для размещения своих сайтов.