Wstępu słów klika
Po wstępnych oględzinach OpenGoo wiedzieliśmy, że nie spełnia naszych oczekiwań jako programistów. Nie było wyjścia, musielismy znaleźć coś innego. I znaleźliśmy Redmine (redmine.org). Już sama prezentacja (demo.redmine.org) wyglądała ciekawie, ale program pokazał pazur dopiero na naszym serwerze.
Okiem zabieganego człowieka
To nie jest program dla menadżera. Kierownik projektu programistycznego odnajdzie się w nim z pewnością, ale przedstawiciel handlowy nie ma tu czego szukać. Tym drugim polecam OpenGoo.
Okiem programisty
Już na pierwszy rzut oka jest dobrze. Można podłączyć repozytorium i w wyjątkowo prosty sposób wiązać zadania z rewizjami. Chcesz sprawdzić jakie wprowadzono zmiany, porównać? Żaden problem. Repozytorium Subversion, CVS, Git, Mercurial, Bazaar, Darcs? Nie ma sprawy. Podział zadań na rozwój, poprawki, naprawy błędów. Możesz zdefiniować własne. Tak samo jak role. Naprawdę duża konfigurowalność. Wiki. Forum. Zarządzanie dokumentacją. W ramach raportowania Gantt. Eksport, który robi poprawne i ładne PDFy. Przefajnie. Dostajesz to, co w każdym programie do zarządzania plus bajerki dla programistów. Oczywiście wszystko na GPL 2.
Okiem użytkownika – administratora
No dobrze, są też wady. Na byle hostingu się tego nie postawi. Ruby 1.8.7, Rails 2.3.4 oraz MySQL 4.1+ (na razie za wyjątkiem 5.1) lub PostgreSQL 8 lub SQLite 3. W domu, czy firmie nie problem coś takiego postawić, ale nie każda firma zewnętrzna oferuje coś takiego do zewnętrznego użytku.
Instalacja też nie należy do tych, co to się je da z zamkniętymi oczami przeprowadzić. Czeka nas trochę grzebania w plikach konfiguracyjnych i ręcznego klepania w powłoce. Efekt jest jednak tego wart.
Instalacja na Ubuntu Server 9.10 (łopatologicznie)
Instalujemy Ubuntu Server 9.10 w wersji podstawowej (bez dodatkowych pakietów).
Idąc po najlżejszej linii oporu skorzystałem z pakietu dostępnego tu: http://leapster.org/packages/redmine/ubuntu/. Nie jest to najnowysza wersja Redmine (0.8.4-1 vs. 0.8.7) – osobiście polecam zainstalowanie zgodnie z opisem na stronie domowej projektu, ale ze względu na wymagania postawione przez administrację serwera lepszym rozwiązaniem było skorzystanie z pakietu, nawet jeśli starszego. Istnieje też możliwość skorzystania z przygotowanej instalacji pod kilka systemów operacyjnych.
sudo apt-get install lynx
Teraz korzystając z przeglądarki w trybie tekstowym ściagamy potrzebny pakiet.
lynx http://leapster.org/packages/redmine/ubuntu/
Teraz skazana na niepowodzenie próba instalacji:
dpkg -i redmine_all-0.8. 4-1.deb
Dostajemy komunikat o niespełnionych zależnościach i niemożności skonfigurowania pakietu.
sudo apt-get -f install
W ten sposób uzupełniamy brakujące zależności.
dpkg -i redmine_all-0.8. 4-1.deb
Powtórzenie instalacji pakietu zapewni nam jego skonfigurowanie.
Zgodnie z komunikatem wyświetlamy sobie plik README i wykonujemy wskazane kroki:
sudo touch /etc/redmine/database.yml
sudo vi /etc/redmine/database.yml
Wprowadzamy oczywiście:
production:
adapter: sqlite3
dbfile: db/production.db
Na tym etapie warto zadbać o przydatne pakiety:
sudo apt-get install sqlite
sudo apt-get install subversion
Teraz przechodzimy chwilowo na użytkownika redmine:
sudo su – redmine
rake db:migrate RAILS_ENV=”production”
exit
Edytujemy jeszcze plik konfiguracyjny:
sudo vi /etc/default/redmine
START=true
Zanim odpalimy serwer, jeszcze drobna uwaga odnośnie subversion. Trzeba nieco przekonfigurować sposób zapamiętywania haseł dla svn, żeby nie było kłopotów z dostępem do repozytoriów:
sudo vi /etc/subversion/servers
store-plaintext-passwords = yes
Teraz pozostaje wystartować serwer:
sudo /etc/init.d/redmine start
Domyślne login/hasło: admin/admin, a serwis dostepny na http://localhost:3000
Uwagi końcowe
Oczywiście Redmine można postawić na MySQL lub PostgreSQL. Niestety pojawiły się pewne trudności, które ze względu na m.in. bardzo krótki czas na instalację i przetestowanie funkcjonalności zmusiły mnie do wybrania najprostrzego rozwiązania (SQLite).
Redmine współpracuje z bazami MySQL w wersji 4.1+ za wyjątkiem 5.1. Nasi administratorzy ze względu na nawał pracy wymagają, by serwery miały możliwie prostą (czytaj: domyślną) konfigurację. Ubuntu 9.10 ma najnowszą wersję MySQL, więc pozostał PostgreSQL.
PostgreSQL niestety wypiął się przy próbie migracji bazy. Komunikaty wskazywały na błędy w plikach Redmine (choć oczywiście przyczyna mogła być inna – np. błędna konfiguracja), a czas topniał. SQLite odpalił od pierwszego kopa.
Ze względu na konieczność przechowywania jawnie hasła do repozytoriów trzeba zabezpieczać się inaczej. Osobiście proponuje na serwerze z repozytoriami wycinać dostęp po haśle z innego miejsca niż serwer z Redmine (zostawiając jako drugi kanał dostępu np. svn+ssh z logowaniem kluczami rsa), oraz udostępniać dla tego użytkownika repozytorium tylko do odczytu.
Read Full Post »