11.12.2009 23:23

Внешний вид
Где-то у половины сервисов для командной разработки, которые я пробовал, внешний вид был, либо отвратительный, либо чересчур запутанный. Redmine в свою очередь выглядит чисто, минималистично и крайне логично. Поддерживает локализации и темы, поэтому вы сможете использовать его на родном языке и с минимальными трудностями настроить внешний вид под свой вкус.
В стандартную установку redmine входит три темы и на официальном сайте есть дополнительные темы, но их там совсем мало, поэтому я расскажу как легко стилизовать внешний вид под себя.
Создание собственной темы
Для начала нужно создать директорию в public/themes вашего redmine с названием новой темы:public/themes/my_theme
После этого создаем css файл application.css и размещаем его в субдиректории stylesheets:
public/themes/my_theme/stylesheets/application.css
Вот так выглядит пример темы изменяющей одну из стандартных тем, добавляет логотип и меняет расположение меню:
/* загружаем стандартную тему classic */
@import url(../../classic/stylesheets/application.css);
/* добавляем логотип в header */
#header {
background: #507AAA url(../images/logo.png) no-repeat 2px;
padding-left: 86px;
}
/* перемещаем меню проекта вправо */
#main-menu {
left: auto;
right: 0px;
}
Теперь новую тему можно применить к сайту через пункт настройки в разделе администрирование. Если в списке тем вашей новой темы нет, то нужно перезапустить redmine. Пример такого тюнинга можно посмотреть на моём поддомене dev.sontan.name, там я установил такой же фон как и в блоге.
Гибкость
Redmine имеет огромные возможности по настройке «под проект», но, тем не менее, полностью работоспособен и «из коробки». Кроме того, он поддерживает плагины, которые расширяют возможности redmine и позволяют его интегрировать в другие сервисы.Мультипроектность
Очень удобно иметь одно место с полным набором функций для всех проектов, причем с жесткими ограничениями для пользователей. Например зарегистрированным пользователям, работающим за одним проектом, не то что не получится увидеть заявки соседнего, даже доступ к файлам по прямой ссылке проверяется по списку.
Настраиваемость
Можно настраивать практически всё, что может понадобиться: дополнительные поля, типы заявок, порядок смены статуса, доступ для разных типов пользователей и т.д. Но это не значит, что для того чтобы начать работать с redmine придется во всем разобраться, даже наоборот, большинству пользователей это и не понадобится, но всегда приятно знать, что инструмент с которым ты работаешь это умеет ;)Установка
Сама установка не сложна и для того чтобы установать redmine «на попробовать» можно использовать инструкцию с официального сайта, но для продакшн сервера мне нужно было добавить проксирующий nginx. Такой инструкции на сайте нет, поэтому опишу процесс такого деплоймента.В качестве руби-сервера я использовал mongrel_cluster, установить его в gentoo можно командой:
emerge mongrel_cluster
в debian нужно поставить пакет mongrel-cluster командой:aptitude install mongrel-cluster
После чего создаем директорию для конфигурации сервера и делаем туда симлинк на конфиг из директории куда установлен redmine.
mkdir /etc/mongrel_cluster
ln -s /путь/до/вашего/сервера/redmine/config/mongrel_cluster.yml /etc/mongrel_cluster/redmine.yml
Дальше копируем init-файл из поставки mongrel_cluster в директорию к остальным init-скриптам и выставляем права:
cp /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d
chmod +x /etc/init.d/mongrel_cluster
modified /etc/mongrel_cluster/redmine.yml
Потом остается только исправить /etc/mongrel_cluster/redmine.yml и подправить настройки nginx, для этого создадим субдомен и настроим проксирование. Вот, как пример, вдержка из моего nginx.conf:
upstream redmine {
server 127.0.0.1:8000;
server 127.0.0.1:8001;
}
server {
listen 80;
server_name .суб.домен;
# / -> сначало ищем index.html потом передаем mongrel
location ~ ^/$ {
if (-f /index.html) {
rewrite (.*) /index.html last;
}
proxy_pass http://redmine;
}
# Отгружаем статику самостоятельно
location ~ .html {
root /путь/до/вашего/сервера/redmine/public;
}
# Все остальное передаем mongrel
location / {
root /путь/до/вашего/сервера/redmine;
proxy_pass http://redmine;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
1668 просмотров
2 комментария