Redmine mit GIT auf Debian-Server

Red­mi­ne ist wohl eines der kom­for­ta­bels­ten und mäch­tigs­ten Issue-Track­ing-Sys­te­me im Open-Source-Bereich.
Hier möch­te ich zei­gen, wie man es auf einem Debi­an-Ser­ver mit nginx als Web­ser­ver instal­liert und einrichtet:

Mit Red­mi­ne 3.0.0 muss das "Red­mi­ne Boot­strap Kit plug­in" v0.2.0 und das "Red­mi­ne Git Hos­ting Plug­in" v1.0.1 oder höher ver­wen­det werden.
Hier­zu sind gege­be­nen­falls Anpas­sun­gen an den Depen­den­ci­es der Gem­files nötig, wel­che sich aus den Hin­wei­sen der Bund­ler-Instal­la­ti­ons­pro­ze­du­ren ergeben.

Tipp:
https://github.com/jbox-web/grack.git klonen und in plugins/redmine_git_hosting/Gemfile ändern: "gem 'gitlab-grack', path: '/opt/redmine/plugins/redmine_git_hosting/grack', require: 'grack'"
In plugins/redmine_git_hosting/grack/grack.gemspec "gem.add_dependency("rack", "~> 1.4.1")" auskommentieren.
In plugins/redmine_git_hosting/Gemfile "gem 'redcarpet', '~> 2.3.0'" auskommentieren.
apt-get install apt-transport-https ca-certificates
echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger wheezy main" > /etc/apt/sources.list.d/passenger.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
apt-get update

apt-get remove nginx nginx-full nginx-light nginx-naxsi nginx-common
apt-get install sudo ssh make g++ bzip2 zip unzip libssl-dev nginx-extras passenger mysql-server libmysqlclient-dev ruby ruby-dev git git-core gitolite imagemagick libmagickcore-dev libmagickwand-dev libicu-dev

nano /etc/nginx/nginx.conf
--------------------
(Prozessanzahl limitieren:         )
(worker_processes 1;               )
(worker_connections 1024;          )
(passenger_max_instances_per_app 2;)

Auskommentieren:
passenger_root ...;
passenger_ruby ...;
-----------------------------
service nginx restart

adduser --system --shell /bin/bash --gecos 'Git Administrator' --group --disabled-password --home /opt/gitolite git
adduser --system --shell /bin/bash --gecos 'Redmine Administrator' --group --disabled-password --home /opt/redmine redmine

su redmine
ssh-keygen -t rsa -N '' -f ~/.ssh/redmine_gitolite_admin_id_rsa
exit
dpkg-reconfigure gitolite
------------------------------------------------------------------
user: git
repos path: /opt/gitolite
admin ssh-key: /opt/redmine/.ssh/redmine_gitolite_admin_id_rsa.pub
------------------------------------------------------------------
su redmine
ln -s /opt/redmine/.ssh/redmine_gitolite_admin_id_rsa /opt/redmine/.ssh/id_rsa
ln -s /opt/redmine/.ssh/redmine_gitolite_admin_id_rsa.pub /opt/redmine/.ssh/id_rsa.pub
exit
visudo
--------------------------------------
# temp - *REMOVE* after installation
redmine    ALL=(ALL)      NOPASSWD:ALL

# redmine gitolite integration
redmine    ALL=(git)      NOPASSWD:ALL
git        ALL=(redmine)  NOPASSWD:ALL
--------------------------------------
sudo su - redmine
cd ~
wget http://www.redmine.org/releases/redmine-x.x.x.tar.gz
tar zxf redmine-x.x.x.tar.gz
mv redmine-x.x.x/* .
rm -Rf redmine-x.x.x
rm redmine-x.x.x.tar.gz

mysql -u root -p -v -e "CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'redmine';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';"

cd /opt/redmine/config
cp database.yml.example database.yml
cp configuration.yml.example configuration.yml
nano database.yml
nano configuration.yml

cd ~
mkdir public/plugin_assets
sudo gem install bundler
bundle install --without development test postgresql sqlite
rake generate_secret_token
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data

cd ~/plugins
git clone https://github.com/jbox-web/redmine_bootstrap_kit.git
cd ~/plugins/redmine_bootstrap_kit
git checkout x.x.x
git clone https://github.com/jbox-web/redmine_git_hosting.git
cd ~/plugins/redmine_git_hosting
git checkout x.x.x

ln -s /opt/redmine/.ssh/redmine_gitolite_admin_id_rsa /opt/redmine/plugins/redmine_git_hosting/ssh_keys/redmine_gitolite_admin_id_rsa
ln -s /opt/redmine/.ssh/redmine_gitolite_admin_id_rsa.pub /opt/redmine/plugins/redmine_git_hosting/ssh_keys/redmine_gitolite_admin_id_rsa.pub

sudo su - git
sed -i 's/$GL_GITCONFIG_KEYS = ""/$GL_GITCONFIG_KEYS = ".*"/g' /opt/gitolite/.gitolite.rc
exit

cd ~
git clone git@localhost:gitolite-admin.git
cd gitolite-admin/
echo "
repo    @all
        RW+    = admin" >> conf/gitolite.conf
git commit -m 'Automatic Repository Initialization' conf/gitolite.conf
git push
cd ~
rm -rf gitolite-admin

cd ~
bundle install --without development
RAILS_ENV=production rake redmine:plugins:migrate
exit

su root
nano /etc/nginx/sites-available/default
---------------------------------------
Hinzufügen:
        location ~ ^/redmine(/.*|$) {
                alias /opt/redmine/public$1;
                passenger_base_uri /redmine;
                passenger_app_root /opt/redmine;
                passenger_document_root /opt/redmine/public;
                passenger_enabled on;
        }
---------------------------------------
nginx -s reload

visudo
-------------------------------------------------
Temp-Eintrag entfernen: "redmine    ALL=(ALL)..."
-------------------------------------------------