Это старая версия документа!
Для установки требуются хранилища: redmine_source.git, redmine_git_hosting.git, redmine_database.git, redmine_gitolite.git
Установка необходимых пакетов в системе
yum groupinstall "Development Tools" yum install libssh2 libssh2-devel cmake libgpg-error-devel
Установка RVM и интерпретатора Ruby
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \curl -sSL https://get.rvm.io | bash -s stable --ruby=2.1.5p273
Установка posgresql и конфигурация
yum install postgresql nano /var/lib/pgsql/data/pg_hba.conf # отредактировать файл # TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust /etc/init.d/posgresql restart git clone redmine_database.git redmine_database # клонировать хранилище с БД cd redmine_database pgql -f redmine-`date`.sql
Создать пользователей redmine и git в системе
adduser redmine adduser git
Установка Redmine
gem install bundler gem install puma su redmine cd ~ git clone redmine_source.git redmine cd redmine bundle install --without development test --path vendor/bundle # в случае отсутствия каких-либо библиотек установить их в системе и повторить команду mkdir tmp tmp/pdf public/plugin_assets sudo chown -R redmine:redmine files log tmp public/plugin_assets sudo chmod -R 755 files log tmp public/plugin_assets bundle exec rails server webrick -e production # тестирование </file> Установка и конфигурация nginx <code>yum install nginx touch /etc/nginx/conf.d/redmine.conf upstream puma_redmine { server unix:///home/redmine/redmine/tmp/sockets/redmine.sock fail_timeout=0; # server 127.0.0.1:3000; #dev mode } server { server_name repo.e-moskva.ru; listen *:80; rewrite ^(.*)$ https://$server_name$1 permanent; } server { server_name repo.e-moskva.ru; listen *:443; listen localhost:443; ssl on; ssl_certificate_key /etc/nginx/cert/privkey.pem; ssl_certificate /etc/nginx/cert/repo.cer; ssl_client_certificate /etc/nginx/cert/root.cer; #ssl_verify_client on; keepalive_timeout 70; fastcgi_param SSL_VERIFIED $ssl_client_verify; fastcgi_param SSL_CLIENT_SERIAL $ssl_client_serial; fastcgi_param SSL_CLIENT_CERT $ssl_client_cert; fastcgi_param SSL_DN $ssl_client_s_dn; root /home/redmine/redmine; access_log /var/log/nginx/redmine.log; error_log /var/log/nginx/redmine.log; client_max_body_size 1G; location / { try_files $uri @ruby; } location /public/courses { autoindex on; } location @ruby { proxy_set_header X-Forwarded-Proto https; # unquote if you are in HTTPs proxy_set_header Host $http_host; proxy_redirect off; proxy_read_timeout 300; proxy_pass http://puma_redmine; } } /etc/init.d/nginx restart </file> Конфигурация Puma <code>touch /etc/init.d/redmine #!/bin/sh ### BEGIN INIT INFO # Provides: redmine # Required-Start: $local_fs $remote_fs $network $mysql $named # Required-Stop: $local_fs $remote_fs $network $mysql $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Redmine projects manager # Description: This file should be used to start and stop Redmine. ### END INIT INFO [ -f /etc/default/rcS ] && . /etc/default/rcS . /lib/lsb/init-functions REDMINE_USER="redmine" WEBSERVER="server_puma" WORKER1="sidekiq_git_hosting" case "$1" in start) su - $REDMINE_USER -c "${WEBSERVER}.sh start" # su - $REDMINE_USER -c "${WORKER1}.sh start" ;; stop) su - $REDMINE_USER -c "${WEBSERVER}.sh stop" # su - $REDMINE_USER -c "${WORKER1}.sh stop" ;; restart) su - $REDMINE_USER -c "${WEBSERVER}.sh restart" # su - $REDMINE_USER -c "${WORKER1}.sh restart" ;; *) echo "Usage : /etc/init.d/redmine {start|stop|restart}" ;; esac mkdir -p /home/redmine/bin/ cd !$ touch server_puma.sh #!/bin/bash # You should place this script in user's home bin dir like : # /home/redmine/bin/server_puma.sh # # Normally the user's bin directory should be in the PATH. # If not, add this in /home/redmine/.profile : # # ------------------>8 # #set PATH so it includes user's private bin if it exists # if [ -d "$HOME/bin" ] ; then # PATH="$HOME/bin:$PATH" # fi # ------------------>8 # # # This script *must* be run by the Redmine user so # switch user *before* running the script : # root$ su - redmine # # Then : # redmine$ server_puma.sh start # redmine$ server_puma.sh stop # redmine$ server_puma.sh restart SERVER_NAME="redmine" RAILS_ENV="production" REDMINE_PATH="$HOME/redmine" CONFIG_FILE="$HOME/etc/puma.rb" PID_FILE="$REDMINE_PATH/tmp/pids/puma.pid" SOCK_FILE="$REDMINE_PATH/tmp/sockets/redmine.sock" BIND_URI="unix://$SOCK_FILE" THREADS="0:8" WORKERS=2 function start () { echo "Start Puma Server..." puma --daemon --preload --bind $BIND_URI \ --environment $RAILS_ENV --dir $REDMINE_PATH \ --workers $WORKERS --threads $THREADS \ --pidfile $PID_FILE --tag $SERVER_NAME \ --config $CONFIG_FILE echo "Done" } function stop () { echo "Stop Puma Server..." if [ -f $PID_FILE ] ; then kill $(cat $PID_FILE) 2>/dev/null rm -f $PID_FILE rm -f $SOCK_FILE fi echo "Done" } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage : server_puma.sh {start|stop|restart}" ;; esac mkdir -p /home/redmine/etc/ cd !$ touch puma.rb stdout_redirect '/home/redmine/redmine/log/puma.stderr.log', '/home/redmine/redmine/log/puma.stdout.log' on_worker_boot do ActiveSupport.on_load(:active_record) do ActiveRecord::Base.establish_connection end end /etc/init.d/redmine start </file> Автозагрузка сервисов <code>chkconfig nginx on chkconfig posgresql on chkconfig redmine on
Установка и конфигурация дополнения redmine-git-hosting.io
su redmine cd REDMINE_ROOT/plugins git clone https://github.com/jbox-web/redmine_bootstrap_kit.git cd redmine_bootstrap_kit/ git checkout 0.2.4 cd REDMINE_ROOT/plugins git clone redmine_git_hosting.git redmine_git_hosting cd redmine_git_hosting/ git checkout e-moskva cd REDMINE_ROOT bundle install --without development test bundle exec rake redmine:plugins:migrate RAILS_ENV=production NAME=redmine_git_hosting cd ~ mkdir ssh_keys ssh-keygen -N '' -f ssh_keys/redmine_gitolite_admin_id_rsa cd /tmp/ git clone redmine_gitolite.git redmine_gitolite cd redmine_gitolite rm -rf /home/git/* cp -r . /home/git/ cp /home/redmine/ssh_keys/redmine_gitolite_admin_id_rsa.pub /home/git/ touch /etc/sudoers.d/redmine Defaults:redmine !requiretty redmine ALL=(git) NOPASSWD:ALL /etc/init.d/redmine restart
Проверка авторизации Redmine
root$ su redmine redmine$ ssh -i ssh_keys/redmine_gitolite_admin_id_rsa git@localhost info # accept key
Доп. инфо:
http://redmine-git-hosting.io/get_started/
https://www.redmine.org/projects/redmine/wiki/RusRedmineInstall