حال که به پروژهتان دسترسی پایهای خواندن/نوشتن و فقط خواندنی دارید، ممکن است بخواهید یک نمایشگر ساده مبتنی بر وب راهاندازی کنید. گیت همراه با یک اسکریپت CGI به نام GitWeb عرضه میشود که گاهی برای این منظور استفاده میشود.
اگر میخواهید ببینید GitWeb برای پروژهتان چگونه خواهد بود، گیت دستوری دارد که میتواند یک نمونه موقت راهاندازی کند، البته به شرطی که وبسرور سبکی مانند lighttpd یا webrick روی سیستمتان نصب باشد.
در سیستمهای لینوکس، معمولاً lighttpd نصب است، پس ممکن است با تایپ کردن git instaweb در پوشه پروژهتان بتوانید آن را اجرا کنید.
اگر از macOS استفاده میکنید، نسخه Leopard به صورت پیشفرض Ruby دارد، پس احتمالاً webrick بهترین گزینه برای شماست.
برای راهاندازی instaweb با یک وبسرور غیر از lighttpd میتوانید از گزینه --httpd استفاده کنید.
$ git instaweb --httpd=webrick
[2009-02-21 10:02:21] INFO WEBrick 1.3.1
[2009-02-21 10:02:21] INFO ruby 1.8.6 (2008-03-03) [universal-darwin9.0]این دستور یک سرور HTTPD روی پورت ۱۲۳۴ راهاندازی میکند و به طور خودکار یک مرورگر وب را باز میکند که صفحه مربوطه را نمایش میدهد.
کار سادهای است.
وقتی کارتان تمام شد و میخواهید سرور را خاموش کنید، میتوانید همان دستور را با گزینه --stop اجرا کنید.
$ git instaweb --httpd=webrick --stopاگر میخواهید رابط وب را دائماً روی یک سرور برای تیمتان یا پروژه متنباز میزبانیشده راهاندازی کنید، باید اسکریپت CGI را طوری تنظیم کنید که توسط وبسرور معمولی شما سرو شود.
برخی توزیعهای لینوکس بستهای به نام gitweb دارند که ممکن است بتوانید با apt یا dnf آن را نصب کنید، پس بهتر است ابتدا این روش را امتحان کنید.
ما به سرعت نصب دستی GitWeb را مرور میکنیم.
ابتدا باید کد منبع گیت را دریافت کنید که GitWeb همراه آن است و سپس اسکریپت CGI سفارشی را بسازید:
$ git clone https://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/srv/git" prefix=/usr gitweb
SUBDIR gitweb
SUBDIR ../
make[2]: `GIT-VERSION-FILE' is up to date.
GEN gitweb.cgi
GEN static/gitweb.js
$ sudo cp -Rf gitweb /var/www/توجه کنید که باید به دستور بگویید مخازن گیت شما کجا قرار دارند، با استفاده از متغیر GITWEB_PROJECTROOT.
حالا باید به آپاچی بگویید که از CGI برای این اسکریپت استفاده کند، برای این کار میتوانید یک VirtualHost اضافه کنید:
<VirtualHost *:80>
ServerName gitserver
DocumentRoot /var/www/gitweb
<Directory /var/www/gitweb>
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
</VirtualHost>دوباره تأکید میکنیم که GitWeb را میتوان با هر وبسرور دارای قابلیت CGI یا Perl سرو کرد؛ اگر ترجیح میدهید از چیز دیگری استفاده کنید، راهاندازی آن دشوار نخواهد بود.
در این مرحله باید بتوانید با مراجعه به آدرس http://gitserver/ مخازن خود را به صورت آنلاین مشاهده کنید.
