Redmine - управление проектами (Apache)

Аватар пользователя Raven2000

Redmine — открытое серверное веб-приложение для управления проектами и отслеживания ошибок. Redmine написан Ruby и представляет собой приложение на основе широко известного веб-фреймворка Ruby on Rails.

Данный продукт предоставляет следующие возможности:

  • ведение нескольких проектов;
  • гибкая система доступа, основанная на ролях;
  • система отслеживания ошибок;
  • диаграммы Ганта и календарь;
  • ведение новостей проекта, документов и управление файлами;
  • оповещение об изменениях с помощью RSS-потоков и электронной почты;
  • вики для каждого проекта;
  • форумы для каждого проекта;
  • учёт временных затрат;
  • настраиваемые произвольные поля для инцидентов, временных затрат, проектов и пользователей;
  • лёгкая интеграция с репозиториями (SVN, CVS, Git, Mercurial, Bazaar и Darcs);
  • создание записей об ошибках на основе полученных писем;
  • поддержка множественной аутентификации LDAP;
  • возможность самостоятельной регистрации новых пользователей;
  • многоязыковой интерфейс (в том числе русский);
  • поддержка СУБД MySQL, PostgreSQL, SQLite, Oracle.

Содержание:

Введение

Я буду устанавливать на "голую" FreeBSD 8.0 i386 и поэтому у меня будет больше запросов по установке, а у вас соответственно меньше.

Установка Redmine

Установим классически из портов:

# cd /usr/ports/
bsd# make search name=Redmine
Port:   redmine-0.9.1
Path:   /usr/ports/www/redmine
Info:   A flexible project management web application
Maint:  decke@bluelife.at
B-deps: libiconv-1.13.1 ruby-1.8.7.248,1 ...
R-deps: libiconv-1.13.1 mysql-client-5.0.89 ...
WWW:    _http://www.redmine.org/
 
Port:   redmine-basecamp-20091116
Path:   /usr/ports/www/redmine-basecamp
Info:   Basecamp Theme for Redmine
Maint:  decke@bluelife.at
B-deps:
R-deps: libiconv-1.13.1 mysql-client-5.0.89 ...
WWW:    _http://www.redmine.org/wiki/redmine/ThemeBasecamp
 
# cd /usr/ports/www/redmine && make install clean
 
~~
Options for redmine 0.9.1
 
[X] MYSQL       Enable MySQL Support
[ ] POSTGRESQL  Enable PostgreSQL Support
 
~~
Options for ruby 1.8.7.248,1
 
[ ] ONIGURUMA  Build with oniguruma regular expressions lib
[ ] IPV6       Enable IPv6 support
[X] RDOC       Build and install Rdoc indexes
[ ] DEBUG      Compile-in debug info
 
~~~
 Options for perl 5.8.9_3
 
[ ] DEBUGGING      Build with debugging support
[ ] GDBM           Build GDBM_File extension
[X] PERL_MALLOC    Use Perl malloc
[X] PERL_64BITINT  Use 64 bit integers (on i386)
[ ] THREADS        Build threaded perl
[ ] SUIDPERL       Build set-user-id suidperl binary
[ ] SITECUSTOMIZE  Run-time customization of @INC
[X] USE_PERL       Rewrite links in /usr/bin
 
~~~
Options for m4 1.4.13,1
 
[ ] LIBSIGSEGV  Use libsigsegv for better diagnostics 
 
~~~
Options for libiconv 1.13.1
 
[X] EXTRA_ENCODINGS  Include extra character sets
[ ] EXTRA_PATCHES    Apply patches to fix CP932 add EUCJP-MS
 
~~
=============================================================================
 
Redmine was installed.
 
You now need to setup your Redmine installation so
please have a look at the Installation Guide.
 
_http://www.redmine.org/wiki/redmine/RedmineInstall
 
 
If you are upgrading please read the Upgrading Guide
before starting the new version.
 
_http://www.redmine.org/wiki/redmine/RedmineUpgrade
 
=============================================================================
===>   Registering installation for redmine-0.9.1
===>  Cleaning for ruby-1.8.7.248,1
===>  Cleaning for ruby18-iconv-1.8.7.248,1
===>  Cleaning for rubygem-rake-0.8.7
===>  Cleaning for ruby18-mysql-2.8.1
===>  Cleaning for automake-1.10.1
===>  Cleaning for autoconf-2.62
===>  Cleaning for libiconv-1.13.1
===>  Cleaning for ruby18-gems-1.3.5
===>  Cleaning for mysql-client-5.0.89
===>  Cleaning for perl-5.8.9_3
===>  Cleaning for automake-wrapper-20071109
===>  Cleaning for m4-1.4.13,1
===>  Cleaning for help2man-1.37.1
===>  Cleaning for gmake-3.81_3
===>  Cleaning for autoconf-wrapper-20071109
===>  Cleaning for libtool-2.2.6b
===>  Cleaning for p5-gettext-1.05_2
===>  Cleaning for gettext-0.17_1
===>  Cleaning for redmine-0.9.1

Настройка MYSQL

Создадим пустую БД и пользователя для работы с ней.

# mysql -h localhost --user=admin--password=XXXXX
mysql>create database redmine_project character set utf8;
mysql>create user 'redmine_project'@'localhost' identified by 'my_password';
mysql>grant all privileges on redmine_project.* to 'redmine_project'@'localhost';
mysql>exit;
Bye

Скопируем и изменим конфигурационный файл работы с БД config/database.yml.example в config/database.yml в соответствие с вашими параметрами.

# cd /usr/local/www/redmine/config/
# cp database.yml.example database.yml
# chmod u+w database.yml
# vi database.yml
 
production:
  adapter: mysql
  database: redmine_project
  host: localhost
  username: redmine_project
  password: my_password
  encoding: utf8

Настройка Ruby

Установим необходимые элементы Ruby:

Port:   rubygem-rails-2.3.4
Path:   /usr/ports/www/rubygem-rails
Info:   MVC web application framework
Maint:  pgollucci@FreeBSD.org
B-deps: libiconv-1.13.1 ruby-1.8.7.248,1 ...
R-deps: libiconv-1.13.1 ruby-1.8.7.248,1 ...
WWW:    _http://www.rubyonrails.org/
 
# cd /usr/ports/www/rubygem-rails && make install clean
 
Options for rubygem-rails 2.3.4
 
[X] FCGI             FastCGI support
[ ] MEMCACHE_CLIENT  MemCache-Client support
 
~~~
Options for rubygem-activerecord 2.3.4_1
 
[X] NATIVE_MYSQL       Use native MySQL bindings
[ ] NATIVE_POSTGRESQL  Use native PostgreSQL bindings
[ ] NATIVE_SQLITE3     Use native SQLite3 bindings
 
~~
===>  Cleaning for rubygem-activesupport-2.3.4_1
===>  Cleaning for rubygem-activerecord-2.3.4_1
===>  Cleaning for rubygem-actionpack-2.3.4
===>  Cleaning for rubygem-actionmailer-2.3.4
===>  Cleaning for rubygem-activeresource-2.3.4
===>  Cleaning for ruby18-fcgi-0.8.7
===>  Cleaning for rubygem-rack-1.0.1,1
===>  Cleaning for fcgi-devkit-2.4.0
===>  Cleaning for rubygem-rails-2.3.4

Установим необходимый порт для запуска Ruby под Apache. Немного ругается, что под другую версию Apache, но нам монописуально и отрехтуем до нужного состояния. =)

# make search name=passenger
Port:   rubygem-passenger-2.2.8
Path:   /usr/ports/www/rubygem-passenger
Info:   Modules for running Ruby on Rails and Rack applications
Maint:  jatzen@gmail.com
B-deps: apache-2.2.14_5 ...
R-deps: apache-2.2.14_5 ...
WWW:    _http://www.modrails.com/
 
# cd /usr/ports/www/rubygem-passenger
# make install clean
===>  rubygem-passenger-2.2.8 : Error from bsd.apache.mk. apache20
 is installed (or APACHE_PORT is defined) and port requires 2.2+.
*** Error code 1
 
Stop in /usr/ports/www/rubygem-passenger.
 
# vi Makefile
USE_APACHE=     2.0+ # 2.2+ > 2.0+
 
# make install clean
Options for rubygem-passenger 2.2.8
 
[X] APACHEPORT  Use apache22
[ ] NGINXPORT   Use nginx
~~
===>   Registering installation for rubygem-passenger-2.2.8
===> SECURITY REPORT:
      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.
/usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/native_support.so
/usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8/ext/
apache2/mod_passenger.so
/usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8/ext/
apache2/ApplicationPoolServerExecutable
/usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8/
ext/phusion_passenger/native_support.so
 
      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.
 
      For more information, and contact details about the security
      status of this software, see the following webpage:
_http://www.modrails.com/
===>  Cleaning for rubygem-passenger-2.2.8

Настройка Apache

У меня установлен и настроен Apache-2.0.63 с mod_fastcgi-2.4.6

В конфигурацию Apache добавим следующий модуль:

# vi /usr/local/etc/apache2/httpd.conf
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8/
ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8

Виртуальный хост рисуем примерно так:

<VirtualHost *:80>
        Alias           /php-fcgi/      /usr/local/etc/fcgi_conf/Raven2000/
        ScriptAlias     /cgi-bin/       "/home/Raven2000/www/data/cgi-bin/"
        ServerAdmin     admin@test.site.local
        SuexecUserGroup Raven2000        Raven2000
        #DocumentRoot    /usr/home/Raven2000/www/data/redmine/public
        DocumentRoot    /usr/local/www/redmine/public
        ServerName      test.site.local
        ServerAlias
        <Directory /usr/local/www/redmine/public/>
                Options         Indexes FollowSymLinks MultiViews
                AllowOverride   All
                Order           deny,allow
                Allow           from all
        </Directory>
        DirectoryIndex  index.php index.html index.htm
        AddType         application/x-httpd-php .php
      ErrorLog        /home/Raven2000/www/log/test.site.local.error.log
      CustomLog       /home/Raven2000/www/log/test.site.local.access.log combined
</VirtualHost>

Настройка Redmine

Redmine хранит данные сессии в куках по умолчанию, который требует секрета и мы его создадим. Это можно сделать командой:

# cd /usr/local/www/redmine
# rake generate_session_store
(in /usr/local/www/redmine)

Для создания структуры базы данных, выполните следующую команду в каталоге Redmine.:

# rake db:migrate RAILS_ENV="production"
(in /usr/local/www/redmine)
~~~~
-- change_column(:wiki_content_versions, :data, :binary, {:limit=>16777216})
   -> 0.0095s
==  ChangeWikiContentsTextLimit: migrated (0.0203s) ===========================

Добавим дополнительные данные конфигурации (по умолчанию) в базу данных, выполнив следующую команду:
# rake redmine:load_default_data RAILS_ENV="production"
(in /usr/local/www/redmine)
 
Select language: bg, bs, ca, cs, da, de, el, en, es, fi, fr, gl, he, hr, hu, id,
it, ja, ko, lt, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sr, sv, th, tr, uk, vi,
zh, zh-TW [en] ru
====================================
Default configuration data loaded.

Укажем Redmine, что нужно использовать php-fcgi.

# cd /usr/local/www/redmine/public/
# cp dispatch.fcgi.example dispatch.fcgi

Запуск

Проверим правильность установки встроенного WEBrick веб-сервера:

# ruby script/server webrick -e production
=> Booting WEBrick
=> Rails 2.3.5 application starting on _http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2010-02-04 12:03:29] INFO  WEBrick 1.3.1
[2010-02-04 12:03:29] INFO  ruby 1.8.7 (2009-12-24) [i386-freebsd8]
[2010-02-04 12:03:29] INFO  WEBrick::HTTPServer#start: pid=15337 port=3000
^C[2010-02-04 12:04:33] INFO  going to shutdown ...
[2010-02-04 12:04:33] INFO  WEBrick::HTTPServer#start done.
Exiting

Итак встроенный веб-сервер работает теперь проверим Apache.

Запускаем Apache и в браузере вводим _http://test.site.local
Вводим учетную запись администратора
Логин: admin
Пароль: admin
В своем профиле меняем язык на Русский. И обязательно меняем дофолтовый пароль на свой.

Настройка SMTP сервера

Настроим систему рассылки сообщений.

# cd /usr/local/www/redmine/config
# cp email.yml.example email.yml
# cat email.yml
production:
  delivery_method: :smtp
  smtp_settings:
    address: mx.mail.ru
    port: 25
    domain: mx.mail.ru
    authentication: :login
    user_name: Raven2000@mail.ru
    password: XXX

Настройка Хранилища

Обновление

Обновлять просто для этого пройдемся по шагам:
0. Проверим рекомендации Requirements
1. Сохраним существующую БД командой mysqldump.
1.1 Оригинальные файлы сохраним tar.

# cd /usr/local/www/
# tar czf redmine.tar.gz redmine/

2.Обновим порты и сделайте portupgrade существующему порту на более новую версию.
3. Обновим структуру
# cd /usr/local/www/redmine
# rake db:migrate RAILS_ENV=production
(in /usr/local/www/redmine)
==  AddIndexOnChangesetsScmid: migrating ======================================
-- add_index(:changesets, [:repository_id, :scmid], {:name=>:changesets_repos_scmid})
   -> 0.3934s
==  AddIndexOnChangesetsScmid: migrated (0.3936s) =============================

3.1 Очистим кеш, tmp и сесии
# rake tmp:cache:clear
(in /usr/local/www/redmine)
 
# rake tmp:sessions:clear
(in /usr/local/www/redmine)

Описание

Пользователи системы

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

Роли

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

Пользователям назначается роль в каждом проекте, в котором он участвует, например «менеджер в проекте по разработке сайта А», «разработчик в проекте по поддержанию интранета компании» или «клиент в проекте по рефакторингу информационной системы компании Б».

Проекты

Проект является одним из основных понятий в предметной области систем управления проектами. Благодаря этой сущности возможно организовать совместную работу и планирование нескольких проектов одновременно с разграничением доступа различным пользователям (см. выше). Проекты допускают иерархическую вложенность.

Трекеры

Трекеры являются основной классификацией, по которой сортируются задачи в проекте. Само по себе понятие «трекер» восходит к системам учета ошибок (англ. Bug tracking tool), представшим каждая в отдельности один проект.

По сути, в Redmine трекеры представляют собой аналог подклассов класса «Задача» и являются основой для полиморфизма разного рода задач, позволяя определять для каждого их типа различные поля. Примерами трекеров являются «Улучшение», «Ошибка», «Документирование», «Поддержка»,

Задачи

Задачи являются центральным понятием всей системы, описывающим некую задачу, которую необходимо выполнить. У каждой задачи в обязательном порядке есть описание и автор, в обязательном порядке задача привязана к трекеру.

Каждая задача имеет статус. Статусы представляют собой отдельную сущность с возможностью определения прав на назначение статуса для различных ролей (например, статус «отклонен» может присвоить только менеджер) или определение актуальности задачи (например, «открыт», «назначен» — актуальные, а «закрыт», «отклонен» — нет).

Для каждого проекта отдельно определяются набор этапов разработки и набор категорий задач. Среди других полей интересны также «оцененное время», служащее основой для построения управленческих диаграмм, а также поле выбора наблюдателей за задачей (см. «Получение уведомлений»). К задачам имеется возможность прикреплять файлы (имеется отдельная сущность «Приложение»).

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

Отслеживание изменения статуса задач

За отслеживание изменений параметров задач пользователями в системе отвечают две сущности: «Запись журнал изменений» и «Измененный параметр». Запись журнала отображает одно действие пользователя по редактированию параметров задачи и/или добавление комментария к ней. То есть служит одновременно инструментом ведения истории задачи и инструментом ведения диалога.

Сущность «Измененный параметр» привязана к отдельной записи журнала и предназначена для хранения старого и нового значения измененного пользователем параметра.

Связи между задачами

Задачи могут быть взаимосвязаны: например, одна задача является подзадачей для другой или предшествовать ей. Эта информация может быть полезна в ходе планирования разработки программы, за ее хранение в Redmine отвечает отдельная сущность.

Учет затраченного на проект времени

Система поддерживает учет затраченного времени благодаря сущности «Затраченное время», связанной с пользователями и задачей. Сущность позволяет хранить затраченное время, вид деятельности пользователя (разработка, проектирование, поддержка) и краткий комментарий к работе. Эти данные могут быть использованы, например, для анализа вклада каждого участника в проект или для оценки фактической трудоемкости и стоимости разработки

Привязка репозиториев

Redmine предоставляет возможность интеграции с различными системами контроля версий (репозиториями). Интеграция заключается в отслеживании изменений во внешнем репозитории, их фиксации в базе данных, анализе изменений с целью их привязки к определенным задачам, . В инфологической структуре системы за интеграцию с внешними репозиториями отвечают три сущности: «Репозиторий», «Редакция» и «Изменение». «Репозиторий» представляет собой связанную с проектом сущность, хранящую тип подключенного репозитория, его местонахождение и идентификационные данные его пользователя.

«Редакция» является отображением редакции репозитория, и, кроме информационных полей, может быть привязана к конкретной задаче (для этого требуется указать в описании изменений «refs #NUM», где NUM — номер задачи), и к пользователю-автору редакции. Сущность «Изменение» предназначена для хранения списка измененных (добавленных, удаленных, перемещенных, модифицированных) файлов в каждой редакции.

Получение уведомлений

Уведомления пользователей об изменениях, происходящих на сайте, осуществляется с помощью сущности «Наблюдатели», связывающей пользователей с объектами различных классов (проекты, задачи, форумы и др.). В базе данных хранятся также ключи доступа к подписке RSS, позволяющие получать уведомления посредством этой технологии, также уведомления рассылаются с помощью электронной почты.

FAQ

В. Проблема после обновления
О. Выполните

# rake config/initializers/session_store.rb
(in /usr/local/www/redmine)
# ruby script/server -e production
=> Booting WEBrick...
=> Rails 2.1.2 application started on <a href="http://0.0.0.0:3000<br />
=>" title="http://0.0.0.0:3000<br />
=>">http://0.0.0.0:3000<br />
=></a> Ctrl-C to shutdown server; call with --help for options

Дополнительные материалы
Ваша оценка: Нет Средняя: 5 (12 голосов)

redmine openbsd

а на опенке не пробовал ставить. в связке с монгрелом. апачем и нжайниксом.
было бы интересно почитать.

очень хорошая прога

очень хорошая прога

как подключаться пользователям к базе данных Redmine?

Подскажите, а как подключаться пользователям к базе данных Redmine?

RE:как подключаться пользователям к базе данных Redmine?

Все вопросы в форум.

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

RM-timer для учета времени Redmine

Добрый день всем! Мы разработали таймер для учета времени в системе Redmine, он доступен для скачивания бесплатно после коротенькой регистрации. Сайт проекта: http://rmclient.org - будем очень признательны за использование нашего таймера и помощь в тестировании. Очень удобная вещь для тех, кто планирует проекты с помощью Redmine.

Easy Redmine

Считаю, что простого редмайна не достаточно, сами пользовались, не хватает функционала, нужны Ганты, агильные доски, гант для распределения задач по пользователям, коммерческие варианты конечно хороши, типа Easy Redmine, и не дороги, относительно какого нибудь Ms project или Jira, но все таки не бесплатные. И кстати удивляет, что на редмайн еще не перешли все правительственные организации, pаз уж они так активно продвигают опесорсовый софт )

Easy Redmine

Считаю, что простого редмайна не достаточно, сами пользовались, не хватает функционала, нужны Ганты, агильные доски, гант для распределения задач по пользователям, коммерческие варианты конечно хороши, типа Easy Redmine, и не дороги, относительно какого нибудь Ms project или Jira, но все таки не бесплатные. И кстати удивляет, что на редмайн еще не перешли все правительственные организации, pаз уж они так активно продвигают опесорсовый софт )

Не подскажете, где redmine

Не подскажете, где redmine хранит файлы?

2 Не подскажете, где redmine

В СУБД

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

уведомления по новостям

используем Redmine 2.6.6.stable
Добавляя новости никому не приходит уведомления, даже если нажать "Следить"
ни по добавлению, ни по комментариям.
Подскажите, как настроить уведомления по новостям?
По задачам проблем нет

Последние статьи

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer