Please read [[Docker HowTo Install]] before installing REDcap == Prerequisites if required '''Step 1 - Install Docker''' [[Docker HowTo Install]] '''Step 2 - Install Git''' {{{$ sudo apt-get update }}} {{{$ sudo apt-get install git }}} '''Step 3 - Install NGINX''' [[NGINX HowTo Install Using Docker]] '''Step 4 - Backup Redcap Database''' Log on to the mysql database machine. {{{/usr/local/mysql/bin/mysqldump --routines --skip-extended-insert --force -h localhost -u root -p redcap > $(date +\%d-\%m-\%Y-)_redcap.sql }}} This will create a database dump file. Connect to my sql. {{{mysql -u root -p}}} Create a database, make sure you postfix with Redcap version number. Please stick to this naming convention. {{{mysql > create database redcap6168}}} Import the lastest database. {{{mysql -u root -p -h localhost redcap6168 < 19-09-2016-_redcap.sql}}} '''Step 5 - Create / Grant Mysql permissions''' If a new user is needed run the following, replace necessary details {{{CREATE USER 'briccsext02_user'@'uhlbriccsext02.xuhl-tr.nhs.uk' IDENTIFIED BY 'password'}}} Grant necessary privileges to user. {{{GRANT USAGE ON *.* TO 'briccsext02_user'@'uhlbriccsext01.xuhl-tr.nhs.uk' IDENTIFIED BY 'password'}}} {{{GRANT ALL PRIVILEGES ON redcap6168_briccsext.* TO 'briccsext02_user'@'%';}}} {{{GRANT ALL PRIVILEGES ON redcap6168_briccsext.* TO 'briccsext02_user'@'%';}}} If user already exists {{{GRANT ALL PRIVILEGES ON redcap6168.* TO 'redcap'@'%';}}} {{{GRANT ALL PRIVILEGES ON redcap6168.* TO 'briccsext02_user'@'%';}}} or {{{GRANT ALL PRIVILEGES ON redcap6168_briccsext.* TO 'briccsext_user'@'uhlbriccsext01.xuhl-tr.nhs.uk';}}} You have the choice of either upgrading Redcap or installing a fresh version of Redcap == Installs 1. On the host machine go to directory {{{/local/docker//}}} 2. Go to this directory and checkout from git docker_redcap_upgrade {{{sudo git clone https://github.com/LCBRU/docker_redcap_upgrade.git}}} {{{sudo chmod -R 777 docker_redcap_upgrade/}}} This will create a directory /local/docker//docker_redcap_upgrade This docker script upgrades an existing redcap installation. The first step is to zip the existing redcap installation, this could be either 3. The directory /var/www/redcap on a virtual machine. {{{cd /var/www}}} {{{sudo zip -r redcap_v5.7.0.zip redcap}}} Move this file into /home//docker_redcap_upgrade 4. The directory /var/www/redcap within a running Docker container. Connect to existing docker container using {{{sudo docker exec -i -t /bin/bash}}} {{{cd /var/www/site/redcap}}} {{{sudo zip -r redcap_v5.7.0.zip *}}} {{{sudo mv redcap_v5.7.0.zip /share/}}} {{{exit}}} redcap_v5.7.0.zip should now be available on the host machine. In the directory /share/ Move this file into /home//docker_redcap_upgrade 5. Now edit Dockerfile Amend the line # Old Redcap Amend all instance of latest Redcap, i.e redcapX.XX.X_upgrade.zip, redcap_vX.XX.X. Please use a copy and replace. 6. Edit database.php Add entries for the database. Ensure salt entry is exactly same as old version of redcap 7. Build Docker container {{{sudo docker build -t lcbruit/redcap_upgrade:v6.16.8 .}}} 8. Run container {{{sudo docker run -v /share:/share -itd -p 82:80 lcbruit/redcap_upgrade:v6.16.8}}} 9. Open URL {{{http://.xuhl-tr.nhs.uk:82/redcap/redcap_v6.16.8/upgrade.php}}} 10. This url will give you a sql script that you run against the database. Download the sql file and place it on the mysql host. Run as follows : {{{mysql -u root -p redcap6168 < redcap_upgrade_61608.sql}}} == Upgrade 1. Download the Redcap upgrade from https://community.projectredcap.org/page/download.html 2. Backup your database or copy the most recent database from {{{/var/MySqlBackerUpper/data/latest}}}. 3. Amend the backup file to change the database name using the following command: {{{ sed -i.bak 's/redcap{old_version}_briccs/redcap{new_version}_briccs/g' {copy of backup file} }}} 4. Create the database: {{{ mysql < {copy of backup file} }}} 5. Grant redcap user permission to the new database: {{{ GRANT SELECT ON redcap{version}.* TO 'redcap'@'%'; }}} 6. Connect to your docker redcap container {{{sudo docker exec -i -t /bin/bash}}} 7. Unzip the contents of redcap7.X.X_upgrade.zip into /var/www/site/redcap 8. Change database.php with details of new database. 9. Open URL {{{http://.xuhl-tr.nhs.uk/redcap/redcap_v7.X.X/upgrade.php}}} 10. This url will give you a sql script that you run against the database. Download the sql file and place it on the mysql host. Run as follows : {{{mysql -u root -p redcap6168 < redcap_upgrade_XXXXX.sql}}} 11. Now modify lcbruit/redcap_fresh docker image. This is very important as it will replace you current docker image. Download the fresh install package from redcap and modify the Dockerfile in redcap_fresh to use it. 12. Build and run the redcap_fresh container : {{{sudo docker build -t lcbruit/redcap_fresh:v6.16.6 .}}} {{{sudo docker run -itd -p 80:80 lcbruit/redcap_fresh:v6.16.6}}} 13. Ensure you have set the container to start on reboot with the correct version number [[Docker HowTo Auto Start Containers On Reboot]]