Gitorious

1. Z repozytorium gitoriousa pobierz źródła projektu

git clone git://gitorious.org/gitorious/mainline.git gitorious

Przeczytaj README - poniższy opis ma pomóc uruchomić Gitoriousa, ale nie zastąpi dokumentacji tego projektu.

2. Załóż bazę danych przez panel administracyjny i skonfiguruj połączenie do niej w pliku gitorius/config/database.yml. Przykładowy plik znajdziesz w gitorious/config/database.sample.yml. Uzupełnij sekcję "production"

3. Skopiuj plik gitorious/config/gitorious.sample.yml do gitorious/config/gitorious.yml i wyedytuj nowo powstałą kopię. Ustaw

cookie_secret - losowy ciąg znaków
repository_base_path: /home/<TwójLogin>/www/git-repos - katalog na repozytoria
gitorious_host: TwojaDomena.pl - domena pod którą będzie serwis
gitorious_user: TwójLogin
gitorious_support_email: Twój e-mail
archive_cache_dir: /home/<TwójLogin>/www/tarballs-cache
archive_work_dir: /home/<TwójLogin>/www/tarballs-work

Ścieżki możesz ustawić dowolne, byle byłyby to ścieżki w Twoim katalogu domowym.

4. Zainstaluj potrzebne gemy

gem install chronic --no-ri --no-rdoc
gem install ruby-hmac --no-ri --no-rdoc

Resztę da się zainstalować przez rake gems:install

cd gitorious; env RAILS_ENV=production rake gems:install

5. Utwórz tabele

env RAILS_ENV=production rake db:migrate

6. Skonfiguruj Sphinxa

env RAILS_ENV=production rake ultrasphinx:configure
env RAILS_ENV=production rake ultrasphinx:index

W pliku gitorious/config/ultrasphinx/production.conf będzie konfiguracja Sphinxa. W sekcji searchd w zmiennej address zamiast 0.0.0.0 wpisz adres IP swojego konta (własne demony można uruchamiać tylko na własnym adresie IP).

env RAILS_ENV=production rake ultrasphinx:daemon:start

7. Dodaj aplikację w panelu: jako typ wybierz RoR (Ruby 1.8, Thin), katalog to gitorious. Nie zapomnij o dodaniu domeny. Po chwili powinieneś pod nią zobaczyć domyślną stronę gitoriousa. 

To jeszcze nie koniec :) Gitorious do zarządzania kluczami SSH potrzebuje brokera STOMP. Autorzy Gitoriousa polecają ActiveMQ napisany w Javie, ale w mniejszych zastosowaniach równie dobrze sprawdzi się dużo lżejszy StompServer. Zainstaluj go poleceniem

gem install stompserver --no-ri --no-rdoc

i uruchom (w katalogu gitorious)

stompserver 2>&1 > log/stompserver.log &

Aplikacja webowa w Railsach przekazuje wiadomości (np. dodaj klucz SSH dla danego użytkownika) do brokera STOMP z którego czytają je konsumenci i wykonują określone akcje. Takim konsumentem w Gitoriousie jest skrypt  script/poller. Zanim go uruchomisz musisz utworzyć 2 katalogi

mkdir tmp/pids (w katalogu gitorious)
mkdir $HOME/.ssh ; chmod 700 $HOME/.ssh
env RAILS_ENV=production script/poller start

Powinieneś już móc zarządzać kluczami SSH przez webowe GUI Gitoriousa.

Uwaga: Gitorious napisany jest w Ruby (GUI oparte o Ruby on Rails) i nawet po zastąpieniu ActiveMQ mniej pamięciożernym StompServer całośc zajmuje ok. 160 MB.