Скатерть-самохостинг, или github в отдельно взятой тайге

Создать репозиторий (кода, текста, непохабных картинок) в современном интернете не проблема. Заходим на гитхаб, битбакет или подобный сервис, вводим е-мейл, получаем письмо с авторизацией, авторизуемся - и... вуаля! У нас есть свой собственный репозиторий.

Хорошо, когда интернет со всеми его репозиториями под рукой, но если он недоступен, временно или постоянно?

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

Могут быть и другие причины нехотения пользоваться такими сервисами. В том числе такие экзотические, как отсутствие е-майла или нежелание запоминать длинные пароли, которые требуют подобные сервисы (лично у меня есть несколько аккаунтов и на битбакете и на гитхабе, но я не помню, какие там пароли).

В общем, стартовые условия определены - мы в тайге, интернета нет, но есть срез репозитория OpenBSD. Можем ли мы там наладить эффективную совместную разработку с публикацией результатов в локальный таёжный веб?

Gitea (git) 1.1.0 : pkg_add gitea

Gitea - это веб-сервис для git, реализованный на go, форк проекта gogs. К сожалению, как и другие проекты на go, gitea будет работать только на современных процессорах - про веб-репозиторий на базе pentium III можно забыть - хотя сам проект довольно нетребователен и быстр.

Интерфейс схож с github, есть навигация по коду, трекер задач, wiki (с поддержкой синхронизации через git), форки, пулл-реквесты, множество аккаунтов. Емейл вводить надо :), но он необязательно должен быть рабочим, также можно использовать почту в локальной сети.

Возможно редактирование файлов через веб-интерфейс, с подстветкой синтаксиса и другими возможностями.

После установки пакета система практически не требует настройки, и запускает веб-демона на указанном порту (который можно легко завернуть через proxy_pass). Окончательная доводка идёт уже через веб-интерфейс.

В общем, если устраивает git и есть достаточно современный процессор - это лучший выбор: настоящий как-бы-гитхаб, при этом совсем без интернета и потребляющий мало памяти.

gitweb 2.14.2 (git) : pkg_add git ruby%2.3

Веб-интерфейс браузинга по репозиторию из стандартной поставки git. Проще всего запустить его с помощью веб-сервера webrick (который входит в дистрибутив ruby).

cgit 1.1 : pkg_add cgit

cgi-скрипт для просмотра репозитория. Используется, например, на git.kernel.org.

cgi-приложение в нынешних реалиях запускается не так уж и тривиально - лично мне в openbsd удалось запустить его только на веб-сервере apache.

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

Также, благодаря тому, что все веб-серверы чрутятся, не только все репозитории должны быть в /var/www, но и использование внешних систем подстветки синтаксиса и обработчиков практически невозможно.

stagit 0.5 (git) : pkg_add stagit

Генератор статических страниц для обзора репозитория. То есть, веб-серверу даже не требуется поддерживать динамическое исполнение страниц, только статику - страницы по вызову stagit будут перегенерироваться заново.

Выглядит это вот так: http://git.2f30.org/stagit/

Честно говоря, я пытался немного попользоваться этой штукой, но она мне показалось не очень удобной, постоянно какие-то мелкие неудобства всплывали при использовании. Кроме того, оно обгрызало русские буквы. Сейчас версия далеко шагнула вперёд, аж до 0.7.1, но я не смотрел новые версии, только 0.5 из репозитория.

hg serve 4.3.2 (mercurial) : pkg_add mercurial

Стандартный веб-интерфейс hg. Для запуска достаточно ввести в репозитории команду hg serve

Есть выбор тем, можно подключить подсветку синтаксиса.

Возможно включить поддержку push и через этот веб-интерфейс коммитить код - понятное дело, никакой авторизации, для авторизации можно прикрутить всё это дело к веб-серверу и авторизироваться с его помощью.

fossil 2.3 (fossil) : pkg_add fossil--

Распределённая система контроля версий *всё в одном*. Помимо распределённого контроля исходного кода, содержит распределённую вики и распределённый багтрекер, а также веб-интерфейс, содержащий все нужные функции. То есть, это готовое решение *из коробки* для одного-двух разработчиков, которое можно просто поставить на сервер и просто пользоваться: в том числе и для публикации готовой программы.

В современных версиях веб-интерфейс обзавёлся современными скинами и уже не выглядит, как привет из 1996 года.

Имеется возможность экспортировать/импортировать в git (через git fast-export / fast-import).

Если нет разницы, какой именно системой контроля версий пользоваться и нужен готовый самохостинг, то fossil стоит рассмотреть особо внимательно.




Своими мнениями об OpenBSD или комментариями к материалу делитесь в разделе openbsd.talk.
Требуется регистрация имени, но она займёт не более 5 секунд.