How-to ako rozbehať Redmine na Debiane je na internete mnoho, máloktorý je ale komplexný a zbehne na ako má, hlavne ak ide o poslednú verziu Redmine (2.6). Len pre upresnenie Redmine je otvorený softvér pre riadenie projektov. Vďaka pluginom je z neho možné spraviť aj takmer čokoľvek iné.

Návod je robený pre nasledovný setup:

  • Debian 7
  • Nginx
  • MariaDB/MySQL

Predpokladám, že web servera a databáza je už na sytéme nainštalovaná, takže to nebudem nejako extra rozpitvávať. Poďme teda na to.

Aktualizácia repozitárov a inštalácia nevyhnutných balíčkov:

aptitude update
apt-get install thin ruby rake rubygems libopenssl-ruby libmysql-ruby librmagick-ruby ruby-dev libmysqlclient-dev libmagick-dev curl libmagickwand-dev imagemagick

Stiahnutie a rozbalenie Redmine

cd /tmp
wget http://www.redmine.org/releases/redmine-2.6.0.zip
unzip redmine-2.6.0.zip
mkdir -p /data/web/example.com/
mv redmine-2.6.0/* /data/web/example.com/

Konfigurácia MariaDB

cd /data/web/example.com/
cp config/database.yml.example config/database.yml
nano config/database.yml

Inštalácia GEM-ov

gem install sass
gem install compass
gem install rmagick
gem install bundler
bundle install --without development test postgresql sqlite
rake generate_secret_token
rake db:migrate RAILS_ENV="production"

Vytvorenie užívateľa a skupiny redmine

useradd redmine
id redmine
chown -R redmine:redmine /data/web/example.com/

Konfigurácia Thin

ln -s /etc/thin1.9.1 /etc/thin
mkdir /var/log/thin
chmod 755 /var/log/thin
mkdir /var/run/thin
chown -R redmine:redmine /var/run/thin
cd /etc/thin
nano redmine.yml

Samotný konfig pre redmine.yml môže vyzerať napríklad takto:

chdir: /data/web/example.com
environment: production
timeout: 30
log: /var/log/thin/redmine.log
pid: /var/run/thin/redmine.pid
max_conns: 1024
max_persistent_conns: 512
require: []
wait: 30
socket: /var/run/thin/redmine.sock
daemonize: true
user: redmine
group: redmine
servers: 1
prefix: /

Teraz je možné naštartovať Thin a preveriť či je všetko OK

/etc/init.d/thin start
tail -f /var/log/thin/redmine.0.log 

Konfigurácia hostu pre Nginx môže vyzerať nejako takto

    .
    .
    .
        listen   80;
  
        root /data/web/example.com;
        server_name example.com;
    .
    .
    .
    
    client_max_body_size 100M;

    location / {
        proxy_set_header X-Reak-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        if (-f $request_filename/index.html) {
          rewrite (.*) $1/index.html break;
        }

        if (-f $request_filename.html) {
          rewrite (.*) $1.html break;
        }

        if (!-f $request_filename) {
          proxy_pass http://unix:/var/run/thin/redmine.0.sock;
          break;
        }
    }
    .
    .
    .

Ďalšie zdroje