======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