======Install Redmine====== This page shows how to install Redmine on a CentOS server. We use the bitnami stack to run Redmine. =====Prerequisites===== You must have a CentOS machine already set up in accordance with the "[[Install CentOS 6]]" guide. By default, the bitnami installer will try to use port 8080/8443 if running as a non root user and 3307 for mysql. We want to use non standard ports so that the server can still use the CentOS supplied MySQL database and Tomcat/Apache. Install these first as root and get them running. Then, when you get to install Bitnami Redmine, the installer will realise the ports are in use and allow you to specify which ports you want to use. =====Download Installer===== Download the Linux x64 bit of bitnami (latest release) [http://bitnami.com/stack/redmine/installer here]. =====Create User and Directories===== We run redmine as the user 'bitnami' su - useradd bitnami passwd bitnami mkdir -p /data/bitnami lvcreate -L 10G -n bitnami datavg mkfs -t ext4 /dev/mapper/datavg-bitnami FILENAME=/etc/fstab echo '/dev/mapper/datavg-bitnami /data/bitnami ext4 defaults 1 2' >> $FILENAME mount -a chown -R bitnami:bitnami /data/bitnami chown -R root:root /data/bitnami/lost+found =====Install===== su cd /tmp chmod u+x ./bitnami-redmine-2.3.3-1-linux-x64-installer.run ./bitnami-redmine-2.3.2-1-linux-x64-installer.run Please select the installation language Please choose an option [1] : 1 PhpMyAdmin [Y/n] : n Is the selection above correct? [Y/n]: Y Select a folder [/home/bitnami/redmine-2.3.2-0]: (do not enter anything, just press enter) Login [user]: bitnamiadmin Password : Your real name [User Name]: Bitnami Admin Email Address [mail@example.com]: redmineadmin@example.com Apache Web Server Port [8080]: 3000 Web Server Port SSL Port [8443]: 3443 MySQL Server port [3306]: 3307 Please choose an option [4] : 4 Do you want to configure mail support? [y/N]: y Default email provider: Please choose an option [1] : 2 Username []: redmine@example.com Password : SMTP Host []: mail.example.com SMTP Port []: 25 Please choose an option [3] : 1 Do you want to continue? [Y/n]: y ... Setup has finished installing BitNami Redmine Stack on your computer. Launch Redmine application. [Y/n]: n Info: To access the BitNami Redmine Stack, go to http://localhost:3000 from your browser. Press [Enter] to continue : Note, the password for bitnamiadmin can also be used to log into the redmine mysql database. However, you will have to use the username root instead of bitnamiadmin. cd /data/bitnami ln -s redmine-2.3.2-1 redmine mv /data/bitnami/redmine/apache2/htdocs/index.html /data/bitnami/redmine/apache2/htdocs/index.html.original =====Edit PATH===== vi ~/.bash_profile PATH=$PATH:$HOME/bin; export PATH PATH="/data/bitnami/redmine/perl/bin:/data/bitnami/redmine/git/bin:/data/bitnami/redmine/sqlite/bin:/data/bitnami/redmine/ruby/bin:/data/bitnami/redmine/subversion/bin:/data/bitnami/redmine/php/bin:/data/bitnami/redmine/mysql/bin:/data/bitnami/redmine/apache2/bin:/data/bitnami/redmine/common/bin:$PATH" export PATH =====Edit Homepage===== Rig it so that the default page of the redmine http server will automatically redirect to the redmine homepage (http://server:3000 points to http://server:3000/redmine) mv /data/bitnami/redmine/apache2/htdocs/index.html /data/bitnami/redmine/apache2/htdocs/index.html.original cat << EOF >> /data/bitnami/redmine/apache2/htdocs/index.html Page Redirection If you are not redirected automatically, follow the link to example EOF =====Open Firewall===== su - iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 3443 -j ACCEPT service iptables save service iptables restart cd /data/bitnami/redmine ./ctlscript.sh start =====Create Service===== su - cat << EOF > /etc/init.d/redmine # chkconfig: 2345 95 20 # description: Script to Start | Stop redmine PATH="/data/bitnami/redmine/perl/bin:/data/bitnami/redmine/git/bin:/data/bitnami/redmine/sqlite/bin:/data/bitnami/redmine/ruby/bin:/data/bitnami/redmine/subversion/bin:/data/bitnami/redmine/php/bin:/data/bitnami/redmine/mysql/bin:/data/bitnami/redmine/apache2/bin:/data/bitnami/redmine/common/bin:$PATH"; export PATH REDMINE_USER=bitnami case $1 in start) su $REDMINE_USER -c "sh /data/bitnami/redmine/ctlscript.sh start" ;; stop) su $REDMINE_USER -c "sh /data/bitnami/redmine/ctlscript.sh start" ;; esac exit 0 END_OF_TEXT Ensure redmine starts on boot. su - chmod u+x /etc/init.d/redmine chkconfig --add redmine chkconfig redmine on service redmine start =====Install Plugins===== The following commands in this section should be run as the user 'bitnami' unless stated otherwise. For the most part, you should be in the following directory. cd /data/bitnami/redmine/apps/redmine/htdocs/plugins If, when trying to run these commands, an error occurs due to the incorrect version of grails run the following and try againgem install rails -version= ====Periodic Tasks==== su - bitnami cd /data/bitnami/redmine/apps/redmine/htdocs git clone -b redmine2 https://github.com/jperelli/Redmine-Periodic-Task.git plugins/periodictask rake redmine:plugins:migrate NAME=periodictask RAILS_ENV=production crontab -e 5 * * * * cd /data/bitnami/redmine/apps/redmine/htdocs; rake redmine:check_periodictasks RAILS_ENV="production" ====Project Overview==== Homepage found [https://github.com/mbasset/project_overview| here]. su - bitnami cd /data/bitnami/redmine/apps/redmine/htdocs/plugins git clone git://github.com/mbasset/project_overview.git cd /data/bitnami/redmine/apps/redmine/htdocs bundle install bundle exec rake redmine:plugins NAME=project_overview RAILS_ENV=production ====Projects Table==== su - bitnami cd /data/bitnami/redmine/apps/redmine/htdocs/plugins git clone git://github.com/denispeplin/redmine-projects-table.git projects_table ====Charts==== su - bitnami cd /data/bitnami/redmine/apps/redmine/htdocs git clone git://github.com/pharmazone/redmine_charts2 plugins/redmine_charts2 cd plugins/redmine_charts2 git checkout redmine21 cd /data/bitnami/redmine/apps/redmine/htdocs git clone git://github.com/pullmonkey/open_flash_chart.git plugins/open_flash_chart cd /data/bitnami/redmine/apps/redmine/htdocs cp -r plugins/open_flash_chart/assets public/plugin_assets/open_flash_chart rake redmine:plugins RAILS_ENV=production ====Attach Screenshot==== su - yum -y install mercurial su - bitnami cd /data/bitnami/redmine/apps/redmine/htdocs/plugins hg clone https://bitbucket.org/StrangeWill/redmine-inline-attach-screenshot redmine_inline_attach_screenshot ====Issue Checklist==== Download from http://redminecrm.com. Check it for the latest filename su - bitnami FILENAME=redmine_issue_checklist-2_0_5.zip cd /data/bitnami/redmine/apps/redmine/htdocs/plugins wget http://redminecrm.com/license_manager/4200/$FILENAME unzip $FILENAME rm $FILENAME bundle exec rake redmine:plugins NAME=redmine_issue_checklist RAILS_ENV=production ====My Page Queries==== Download from http://redminecrm.com. Check it for the latests filename su - bitnami cd /data/bitnami/redmine/apps/redmine/htdocs/plugins git clone git://github.com/Undev/redmine_my_page_queries.git rake my_page_queries:upgrade RAILS_ENV=production ====Last Updated By==== Download from http://redminecrm.com. Check it for the latests filename su - bitnami cd /data/bitnami/redmine/apps/redmine/htdocs/plugins git clone https://github.com/neowit/redmine_last_updated_by_column.git =====Backup===== We backup to /backup/redmine. mkdir -p /backup/redmine/apps/redmine/htdocs mkdir -p /backup/redmine/db_backup Put the following in backupRedmine.sh in /backup/redmine PATH=/opt/redmine/perl/bin:/opt/redmine/git/bin:/opt/redmine/sqlite/bin:/opt/redmine/ruby/bin:/opt/redmine/subversion/bin:/opt/redmine/mysql/bin:/opt/redmine/apache2/bin:/opt/redmine/common/bin:/usr/bin:/bin FILENAME=/backup/redmine/db_backup/redmine_backup_`date +"%A"`.sql echo "Backing up redmine database to $FILENAME" /data/bitnami/redmine/mysql/bin/mysqldump -u root -pPASSWORD bitnami_redmine > $FILENAME echo "Finished backing up redmine database" echo "Starting file sync" rsync -a /data/bitnami/redmine/apps/redmine/htdocs/files /backup/redmine/apps/redmine/htdocs echo "Finished file sync" exit 0 su - bitnami crontab -e 45 * * * * cd /backup/redmine; ./backupRedmine.sh ======Email===== We can create redmine tasks through email. To set this up, see [[Configure_Redmine_Email|Configure Redmine Email]]. In addition, you need to ensure that redmine can email people vi /data/bitnami/redmine/apps/redmine/htdocs/config/configuration.yml # default configuration options for all environments default: # Outgoing emails configuration (see examples above) email_delivery: delivery_method: :smtp smtp_settings: address: mail.example.com port: 25 domain: mail.example.com authentication: :login user_name: redmine@example.com password: pa55word =====Backup Redmine Manually (Normal)===== For this, Redmine has to be running in order to get the database backup. * SSH into the machine 'redmine' (redmine is a DNS alias for the server 'atlas'). * Become the user 'bitnami' (assuming you logged in as a different user)su - bitnami * Move to the current redmine directorycd /data/bitnami/redmine * Backup the databasemysqldump -h localhost -u root -pPASSWORD bitnami_redmine > /backup/redmine/redmine_db_backup_`date +%Y_%m_%d`.sql * Backup the filesrsync -a /data/bitnami/redmine/apps/redmine/htdocs/files /backup/redmine/apps/redmine/htdocs =====Backup Redmine Manually (Full)===== For this, stop redmine before running the 'backup'. * SSH into the machine 'redmine' (redmine is a DNS alias for the server 'atlas'). * Become the user 'bitnami' (assuming you logged in as a different user)su - bitnami * Move to the bitnami folder cd /data/bitnami * Stop redmine/data/bitnami/redmine/ctlscript stop * Find out which folder 'redmine' is pointing tols -l * Backup the whole foldertar -zcvf redmine_full_backup_`date +%Y_%m_%d`.tar.gz redmine-2.3.3-1 * Move to /backup/redminemv ./redmine_full_backup_*.tar.gz /backup/redmine * Remember, ideally we don't want to keep this full backup longer than necessary as it will waste space on file3. =====Upgrade Redmine===== * SSH into the machine 'redmine' (redmine is a DNS alias for the server 'atlas'). * Become the user 'bitnami' (assuming you logged in as a different user)su - bitnami * '''Ensure you have taken BOTH the normal backup and the full backup as shown above.''' * '''Ensure that redmine is not running.'''/data/bitnami/redmine/ctlscript.sh stop * Using a web browser on the virtual machine go to [http://bitnami.org/stack/redmine] and download the latest bitnami redmine stack. * Install the new version using the instructions [[Install_Redmine#Install|above]]. Also install the plugins from scratch. Do not install to /data/bitnami/redmine. Install to /data/bitnami/redmine-x.y.z-a * When the installation has finished, move to the base directorycd /data/bitnami * rm -f redmine * ln -s redmine-x.y.z-a redmine * Start the new redmine./redmine/ctlscript.sh start * Check the website to check that it is workinghttp://redmine:3000/redmine * Restore the database using the backup database filemysql -u root -pPASSWORD bitnami_redmine < /backup/redmine/db_backup/redmine_db_backup_YYY_MM_DD.sql * Copy the main configuration filecp /data/bitnami/redmine-o.l.d-x/apps/redmine/htdocs/lib/redmine/configuration.rb /data/bitnami/redmine/apps/redmine/htdocs/lib/redmine/configuration.rb * Restore the uploaded filesrsync -a /backup/redmine/apps/redmine/htdocs/files /data/bitnami/redmine/apps/redmine/htdocs * cd /data/bitnami/redmine/apps/redmine/htdocs * ruby bin/rake db:migrate RAILS_ENV=production * ruby bin/rake redmine:plugins RAILS_ENV="production" * ruby bin/rake redmine:plugins:migrate RAILS_ENV=production * Clean upruby bin/rake tmp:cache:clear * Clean up some moreruby bin/rake tmp:sessions:clear * Restart the stack/data/bitnami/redmine/ctlscript.sh stop * Restart the stack/data/bitnami/redmine/ctlscript.sh start * Test redmine via going to http://redmine:3000/redmine. It should be available and all old data should have been re-imported correctly. * After confirming the upgrade, take a backup. =====Email Settings===== /data/bitnami/redmine/apps/redmine/htdocs/config/configuration.yml # default configuration options for all environments default: # Outgoing emails configuration (see examples above) email_delivery: delivery_method: :smtp smtp_settings: address: mail.example.com port: 25 domain: mail.example.com authentication: :login user_name: redmine@example.com password: pa55word