diff --git a/.gitlab-ci.old.yml b/.gitlab-ci.old.yml
new file mode 100644
index 0000000000000000000000000000000000000000..95eb8708f163e3986bff41a46aec700312bb3a45
--- /dev/null
+++ b/.gitlab-ci.old.yml
@@ -0,0 +1,149 @@
+image: docker:stable
+
+stages:
+  - build
+  - test
+  - deploy
+  - rollback
+
+build:
+  stage: build
+  script:
+    # Setup
+    - export AWS_REGION="eu-west-1"
+    - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
+    - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
+    - export REPO=$CI_ECR_URL
+    - apk update
+    - apk --no-cache add --update curl python python-dev py-pip
+    - pip install awscli --upgrade --user
+    - export PATH=~/.local/bin:/usr/bin/:$PATH
+    # AUTH
+    - CERT=`aws ecr get-login --no-include-email --region ${AWS_REGION}`
+    - ${CERT}
+    # Build
+    - docker build -t ${CI_PROJECT_NAME}:$CI_COMMIT_SHA .
+    - docker tag $CI_PROJECT_NAME:$CI_COMMIT_SHA $REPO:latest
+    - docker push $REPO:latest
+  environment:
+    name: qa
+    url: $CI_ALB_URL
+
+lint:
+  image: $CI_ECR_URL:latest
+  stage: test
+  variables:
+    GIT_STRATEGY: none
+  script:
+    - cd ${HOME}
+    - npm run lint
+
+test:
+  image: $CI_ECR_URL:latest
+  stage: test
+  variables:
+    GIT_STRATEGY: none
+  script:
+    - cd ${HOME}
+    - npm run test
+
+create-rollback:
+  stage: test
+  only:
+    - master
+  script:
+    - export AWS_REGION="eu-west-1"
+    - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
+    - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
+    - apk --no-cache add --update curl python python-dev py-pip jq
+    - pip install awscli --upgrade --user
+    - export PATH=~/.local/bin:/usr/bin/:$PATH
+    # Discover the ALB name
+    - ALB=`aws elbv2 describe-load-balancers --region ${AWS_REGION} --names ${CI_ALB_NAME} | jq .LoadBalancers[0].DNSName`
+    # Test Keepalive
+    - /usr/bin/curl --fail http://${ALB//'"'}/keepalive
+    # IF Keepalive return 200...
+    # Retrieve & Store this revision as 'last known successful revision' in S3 Bucket
+    - REV=`aws ecs describe-services --region ${AWS_REGION} --cluster ${CI_CLUSTER_NAME} --service ${CI_SERVICE_NAME} |jq -r '.services[0].deployments[0].taskDefinition'`
+    - echo successful revision is ${REV} Storing it in S3 Bucket
+    - echo ${REV} > /${CI_SERVICE_NAME}
+    # sync rev to S3 here
+    - aws s3 cp /${CI_SERVICE_NAME} s3://${CI_REV_BUCKET}
+  environment:
+    name: qa
+    url: $CI_ALB_URL
+
+deploy:
+  stage: deploy
+  only:
+    - master
+  script:
+    - export AWS_REGION="eu-west-1"
+    - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
+    - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
+    - apk --no-cache add --update python python-dev py-pip
+    - pip install ecs-deploy
+    # Deploy
+    - ecs deploy ${CI_CLUSTER_NAME} ${CI_SERVICE_NAME} --region ${AWS_REGION} --timeout 600 -e ${CI_CONTAINER_NAME} AWS_S3_ACCESS_KEY $AWS_S3_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_S3_SECRET_KEY $AWS_S3_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_S3_REGION $AWS_S3_REGION -e ${CI_CONTAINER_NAME} AWS_S3_BUCKET $AWS_S3_BUCKET -e ${CI_CONTAINER_NAME} AWS_SES_SECRET_KEY $AWS_SES_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_SES_ACCESS_KEY $AWS_SES_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_SES_REGION $AWS_SES_REGION -e ${CI_CONTAINER_NAME} EMAIL_SENDER $EMAIL_SENDER -e ${CI_CONTAINER_NAME} secret $SECRET -e ${CI_CONTAINER_NAME} DATABASE $DATABASE -e ${CI_CONTAINER_NAME} DB_USER $DB_USER -e ${CI_CONTAINER_NAME} DB_PASS $DB_PASS -e ${CI_CONTAINER_NAME} DB_HOST $DB_HOST -e ${CI_CONTAINER_NAME} ORCID_CLIENT_ID $ORCID_CLIENT_ID -e ${CI_CONTAINER_NAME} ORCID_CLIENT_SECRET $ORCID_CLIENT_SECRET -e ${CI_CONTAINER_NAME} CLIENT_BASE_URL $CLIENT_BASE_URL -e ${CI_CONTAINER_NAME} FTP_USERNAME $FTP_USERNAME -e ${CI_CONTAINER_NAME} FTP_PASSWORD $FTP_PASSWORD -e ${CI_CONTAINER_NAME} FTP_HOST $FTP_HOST 
+  environment:
+    name: qa
+    url: $CI_ALB_URL
+
+aws-qa:
+  stage: deploy
+  when: manual
+  only:
+    - develop
+  script:
+    - export AWS_REGION="eu-west-1"
+    - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
+    - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
+    - apk --no-cache add --update python python-dev py-pip
+    - pip install ecs-deploy
+    # Deploy
+    - ecs deploy ${CI_CLUSTER_NAME} ${CI_SERVICE_NAME} --region ${AWS_REGION} --timeout 600 -e ${CI_CONTAINER_NAME} AWS_S3_ACCESS_KEY $AWS_S3_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_S3_SECRET_KEY $AWS_S3_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_S3_REGION $AWS_S3_REGION -e ${CI_CONTAINER_NAME} AWS_S3_BUCKET $AWS_S3_BUCKET -e ${CI_CONTAINER_NAME} AWS_SES_SECRET_KEY $AWS_SES_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_SES_ACCESS_KEY $AWS_SES_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_SES_REGION $AWS_SES_REGION -e ${CI_CONTAINER_NAME} EMAIL_SENDER $EMAIL_SENDER -e ${CI_CONTAINER_NAME} secret $SECRET -e ${CI_CONTAINER_NAME} DATABASE $DATABASE -e ${CI_CONTAINER_NAME} DB_USER $DB_USER -e ${CI_CONTAINER_NAME} DB_PASS $DB_PASS -e ${CI_CONTAINER_NAME} DB_HOST $DB_HOST -e ${CI_CONTAINER_NAME} ORCID_CLIENT_ID $ORCID_CLIENT_ID -e ${CI_CONTAINER_NAME} ORCID_CLIENT_SECRET $ORCID_CLIENT_SECRET -e ${CI_CONTAINER_NAME} CLIENT_BASE_URL $CLIENT_BASE_URL -e ${CI_CONTAINER_NAME} FTP_USERNAME $FTP_USERNAME -e ${CI_CONTAINER_NAME} FTP_PASSWORD $FTP_PASSWORD -e ${CI_CONTAINER_NAME} FTP_HOST $FTP_HOST 
+  environment:
+    name: qa
+    url: $CI_ALB_URL
+
+rollback:
+  stage: rollback
+  when: on_failure
+  only:
+    - master
+  script:
+    - export AWS_REGION="us-east-1"
+    - export AWS_ACCESS_KEY_ID=$aws_access_key_id
+    - export AWS_SECRET_ACCESS_KEY=$aws_secret_access_key
+    - apk --no-cache add --update curl python python-dev py-pip
+    - pip install awscli --upgrade --user
+    - export PATH=~/.local/bin:/usr/bin/:$PATH
+    - pip install ecs-deploy
+    - aws s3 cp s3://${CI_REV_BUCKET}/${CI_SERVICE_NAME} ./
+    - REV=`cat ./${CI_SERVICE_NAME}`
+    - echo rev is $REV
+    - ecs deploy --region ${AWS_REGION} ${CLUSTER_NAME} ${CI_SERVICE_NAME} --task ${REV} -e ${CI_CONTAINER_NAME} AWS_S3_ACCESS_KEY $AWS_S3_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_S3_SECRET_KEY $AWS_S3_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_S3_REGION $AWS_S3_REGION -e ${CI_CONTAINER_NAME} AWS_S3_BUCKET $AWS_S3_BUCKET -e ${CI_CONTAINER_NAME} AWS_SES_SECRET_KEY $AWS_SES_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_SES_ACCESS_KEY $AWS_SES_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_SES_REGION $AWS_SES_REGION -e ${CI_CONTAINER_NAME} EMAIL_SENDER $EMAIL_SENDER -e ${CI_CONTAINER_NAME} secret $SECRET -e ${CI_CONTAINER_NAME} DATABASE $DATABASE -e ${CI_CONTAINER_NAME} DB_USER $DB_USER -e ${CI_CONTAINER_NAME} DB_PASS $DB_PASS -e ${CI_CONTAINER_NAME} DB_HOST $DB_HOST -e ${CI_CONTAINER_NAME} ORCID_CLIENT_ID $ORCID_CLIENT_ID -e ${CI_CONTAINER_NAME} ORCID_CLIENT_SECRET $ORCID_CLIENT_SECRET -e ${CI_CONTAINER_NAME} CLIENT_BASE_URL $CLIENT_BASE_URL -e ${CI_CONTAINER_NAME} FTP_USERNAME $FTP_USERNAME -e ${CI_CONTAINER_NAME} FTP_PASSWORD $FTP_PASSWORD -e ${CI_CONTAINER_NAME} FTP_HOST $FTP_HOST 
+  environment:
+    name: qa
+    url: $CI_ALB_URL
+
+rollback-qa:
+  stage: rollback
+  when: manual
+  only:
+    - develop
+  script:
+    - export AWS_REGION="us-east-1"
+    - export AWS_ACCESS_KEY_ID=$aws_access_key_id
+    - export AWS_SECRET_ACCESS_KEY=$aws_secret_access_key
+    - apk --no-cache add --update curl python python-dev py-pip
+    - pip install awscli --upgrade --user
+    - export PATH=~/.local/bin:/usr/bin/:$PATH
+    - pip install ecs-deploy
+    - aws s3 cp s3://${CI_REV_BUCKET}/${CI_SERVICE_NAME} ./
+    - REV=`cat ./${CI_SERVICE_NAME}`
+    - echo rev is $REV
+    - ecs deploy --region ${AWS_REGION} ${CLUSTER_NAME} ${CI_SERVICE_NAME} --task ${REV} -e ${CI_CONTAINER_NAME} AWS_S3_ACCESS_KEY $AWS_S3_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_S3_SECRET_KEY $AWS_S3_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_S3_REGION $AWS_S3_REGION -e ${CI_CONTAINER_NAME} AWS_S3_BUCKET $AWS_S3_BUCKET -e ${CI_CONTAINER_NAME} AWS_SES_SECRET_KEY $AWS_SES_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_SES_ACCESS_KEY $AWS_SES_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_SES_REGION $AWS_SES_REGION -e ${CI_CONTAINER_NAME} EMAIL_SENDER $EMAIL_SENDER -e ${CI_CONTAINER_NAME} secret $SECRET -e ${CI_CONTAINER_NAME} DATABASE $DATABASE -e ${CI_CONTAINER_NAME} DB_USER $DB_USER -e ${CI_CONTAINER_NAME} DB_PASS $DB_PASS -e ${CI_CONTAINER_NAME} DB_HOST $DB_HOST -e ${CI_CONTAINER_NAME} ORCID_CLIENT_ID $ORCID_CLIENT_ID -e ${CI_CONTAINER_NAME} ORCID_CLIENT_SECRET $ORCID_CLIENT_SECRET -e ${CI_CONTAINER_NAME} CLIENT_BASE_URL $CLIENT_BASE_URL -e ${CI_CONTAINER_NAME} FTP_USERNAME $FTP_USERNAME -e ${CI_CONTAINER_NAME} FTP_PASSWORD $FTP_PASSWORD -e ${CI_CONTAINER_NAME} FTP_HOST $FTP_HOST 
+  environment:
+    name: qa
+    url: $CI_ALB_URL
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 95eb8708f163e3986bff41a46aec700312bb3a45..9d76f567afded10a195ae13549b3ebb089ab9b9c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,19 +1,22 @@
-image: docker:stable
+variables:
+  CONFIGURATION_REPOSITORY: https://gitlab.coko.foundation/bogdan/xpub-faraday-deployment-config.git
+  DOCKER_REPO: $CI_ECR_URL
 
 stages:
   - build
   - test
+  - push
   - deploy
   - rollback
 
 build:
+  image: docker:latest
   stage: build
   script:
     # Setup
     - export AWS_REGION="eu-west-1"
     - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
     - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
-    - export REPO=$CI_ECR_URL
     - apk update
     - apk --no-cache add --update curl python python-dev py-pip
     - pip install awscli --upgrade --user
@@ -23,14 +26,11 @@ build:
     - ${CERT}
     # Build
     - docker build -t ${CI_PROJECT_NAME}:$CI_COMMIT_SHA .
-    - docker tag $CI_PROJECT_NAME:$CI_COMMIT_SHA $REPO:latest
-    - docker push $REPO:latest
-  environment:
-    name: qa
-    url: $CI_ALB_URL
+    - docker tag $CI_PROJECT_NAME:$CI_COMMIT_SHA $DOCKER_REPO:$CI_COMMIT_SHA
+    - docker push $DOCKER_REPO:$CI_COMMIT_SHA
 
 lint:
-  image: $CI_ECR_URL:latest
+  image: $DOCKER_REPO:$CI_COMMIT_SHA
   stage: test
   variables:
     GIT_STRATEGY: none
@@ -39,7 +39,7 @@ lint:
     - npm run lint
 
 test:
-  image: $CI_ECR_URL:latest
+  image: $DOCKER_REPO:$CI_COMMIT_SHA
   stage: test
   variables:
     GIT_STRATEGY: none
@@ -47,49 +47,49 @@ test:
     - cd ${HOME}
     - npm run test
 
-create-rollback:
-  stage: test
+push:qa:
+  image: docker:latest
+  stage: push
   only:
-    - master
+    - develop
   script:
+    # Setup
     - export AWS_REGION="eu-west-1"
     - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
     - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
-    - apk --no-cache add --update curl python python-dev py-pip jq
+    - apk update
+    - apk --no-cache add --update curl python python-dev py-pip
     - pip install awscli --upgrade --user
     - export PATH=~/.local/bin:/usr/bin/:$PATH
-    # Discover the ALB name
-    - ALB=`aws elbv2 describe-load-balancers --region ${AWS_REGION} --names ${CI_ALB_NAME} | jq .LoadBalancers[0].DNSName`
-    # Test Keepalive
-    - /usr/bin/curl --fail http://${ALB//'"'}/keepalive
-    # IF Keepalive return 200...
-    # Retrieve & Store this revision as 'last known successful revision' in S3 Bucket
-    - REV=`aws ecs describe-services --region ${AWS_REGION} --cluster ${CI_CLUSTER_NAME} --service ${CI_SERVICE_NAME} |jq -r '.services[0].deployments[0].taskDefinition'`
-    - echo successful revision is ${REV} Storing it in S3 Bucket
-    - echo ${REV} > /${CI_SERVICE_NAME}
-    # sync rev to S3 here
-    - aws s3 cp /${CI_SERVICE_NAME} s3://${CI_REV_BUCKET}
-  environment:
-    name: qa
-    url: $CI_ALB_URL
+    # AUTH
+    - CERT=`aws ecr get-login --no-include-email --region ${AWS_REGION}`
+    - ${CERT}
+    # Tag
+    - docker tag $DOCKER_REPO:$CI_COMMIT_SHA $DOCKER_REPO:latest
+    - docker push $DOCKER_REPO:latest
 
-deploy:
-  stage: deploy
+push:staging:
+  image: docker:latest
+  stage: push
   only:
     - master
   script:
+    # Setup
     - export AWS_REGION="eu-west-1"
     - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
     - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
-    - apk --no-cache add --update python python-dev py-pip
-    - pip install ecs-deploy
-    # Deploy
-    - ecs deploy ${CI_CLUSTER_NAME} ${CI_SERVICE_NAME} --region ${AWS_REGION} --timeout 600 -e ${CI_CONTAINER_NAME} AWS_S3_ACCESS_KEY $AWS_S3_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_S3_SECRET_KEY $AWS_S3_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_S3_REGION $AWS_S3_REGION -e ${CI_CONTAINER_NAME} AWS_S3_BUCKET $AWS_S3_BUCKET -e ${CI_CONTAINER_NAME} AWS_SES_SECRET_KEY $AWS_SES_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_SES_ACCESS_KEY $AWS_SES_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_SES_REGION $AWS_SES_REGION -e ${CI_CONTAINER_NAME} EMAIL_SENDER $EMAIL_SENDER -e ${CI_CONTAINER_NAME} secret $SECRET -e ${CI_CONTAINER_NAME} DATABASE $DATABASE -e ${CI_CONTAINER_NAME} DB_USER $DB_USER -e ${CI_CONTAINER_NAME} DB_PASS $DB_PASS -e ${CI_CONTAINER_NAME} DB_HOST $DB_HOST -e ${CI_CONTAINER_NAME} ORCID_CLIENT_ID $ORCID_CLIENT_ID -e ${CI_CONTAINER_NAME} ORCID_CLIENT_SECRET $ORCID_CLIENT_SECRET -e ${CI_CONTAINER_NAME} CLIENT_BASE_URL $CLIENT_BASE_URL -e ${CI_CONTAINER_NAME} FTP_USERNAME $FTP_USERNAME -e ${CI_CONTAINER_NAME} FTP_PASSWORD $FTP_PASSWORD -e ${CI_CONTAINER_NAME} FTP_HOST $FTP_HOST 
-  environment:
-    name: qa
-    url: $CI_ALB_URL
+    - apk update
+    - apk --no-cache add --update curl python python-dev py-pip
+    - pip install awscli --upgrade --user
+    - export PATH=~/.local/bin:/usr/bin/:$PATH
+    # AUTH
+    - CERT=`aws ecr get-login --no-include-email --region ${AWS_REGION}`
+    - ${CERT}
+    # Tag
+    - docker tag $DOCKER_REPO:$CI_COMMIT_SHA $DOCKER_REPO:staging
+    - docker push $DOCKER_REPO:staging
 
-aws-qa:
+deploy:aws-qa:
   stage: deploy
   when: manual
   only:
@@ -101,49 +101,39 @@ aws-qa:
     - apk --no-cache add --update python python-dev py-pip
     - pip install ecs-deploy
     # Deploy
-    - ecs deploy ${CI_CLUSTER_NAME} ${CI_SERVICE_NAME} --region ${AWS_REGION} --timeout 600 -e ${CI_CONTAINER_NAME} AWS_S3_ACCESS_KEY $AWS_S3_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_S3_SECRET_KEY $AWS_S3_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_S3_REGION $AWS_S3_REGION -e ${CI_CONTAINER_NAME} AWS_S3_BUCKET $AWS_S3_BUCKET -e ${CI_CONTAINER_NAME} AWS_SES_SECRET_KEY $AWS_SES_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_SES_ACCESS_KEY $AWS_SES_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_SES_REGION $AWS_SES_REGION -e ${CI_CONTAINER_NAME} EMAIL_SENDER $EMAIL_SENDER -e ${CI_CONTAINER_NAME} secret $SECRET -e ${CI_CONTAINER_NAME} DATABASE $DATABASE -e ${CI_CONTAINER_NAME} DB_USER $DB_USER -e ${CI_CONTAINER_NAME} DB_PASS $DB_PASS -e ${CI_CONTAINER_NAME} DB_HOST $DB_HOST -e ${CI_CONTAINER_NAME} ORCID_CLIENT_ID $ORCID_CLIENT_ID -e ${CI_CONTAINER_NAME} ORCID_CLIENT_SECRET $ORCID_CLIENT_SECRET -e ${CI_CONTAINER_NAME} CLIENT_BASE_URL $CLIENT_BASE_URL -e ${CI_CONTAINER_NAME} FTP_USERNAME $FTP_USERNAME -e ${CI_CONTAINER_NAME} FTP_PASSWORD $FTP_PASSWORD -e ${CI_CONTAINER_NAME} FTP_HOST $FTP_HOST 
+    - ecs deploy ${CI_CLUSTER_NAME} ${CI_SERVICE_NAME} --region ${AWS_REGION} --timeout 1200 -e ${CI_CONTAINER_NAME} AWS_S3_ACCESS_KEY $AWS_S3_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_S3_SECRET_KEY $AWS_S3_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_S3_REGION $AWS_S3_REGION -e ${CI_CONTAINER_NAME} AWS_S3_BUCKET $AWS_S3_BUCKET -e ${CI_CONTAINER_NAME} AWS_SES_SECRET_KEY $AWS_SES_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_SES_ACCESS_KEY $AWS_SES_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_SES_REGION $AWS_SES_REGION -e ${CI_CONTAINER_NAME} EMAIL_SENDER $EMAIL_SENDER -e ${CI_CONTAINER_NAME} secret $SECRET -e ${CI_CONTAINER_NAME} DATABASE $DATABASE -e ${CI_CONTAINER_NAME} DB_USER $DB_USER -e ${CI_CONTAINER_NAME} DB_PASS $DB_PASS -e ${CI_CONTAINER_NAME} DB_HOST $DB_HOST -e ${CI_CONTAINER_NAME} ORCID_CLIENT_ID $ORCID_CLIENT_ID -e ${CI_CONTAINER_NAME} ORCID_CLIENT_SECRET $ORCID_CLIENT_SECRET -e ${CI_CONTAINER_NAME} CLIENT_BASE_URL $CLIENT_BASE_URL -e ${CI_CONTAINER_NAME} FTP_USERNAME $FTP_USERNAME -e ${CI_CONTAINER_NAME} FTP_PASSWORD $FTP_PASSWORD -e ${CI_CONTAINER_NAME} FTP_HOST $FTP_HOST 
   environment:
     name: qa
     url: $CI_ALB_URL
 
-rollback:
-  stage: rollback
-  when: on_failure
+deploy:qa:
+  image: pubsweet/deployer:latest
+  stage: deploy
+  when: manual
   only:
-    - master
-  script:
-    - export AWS_REGION="us-east-1"
-    - export AWS_ACCESS_KEY_ID=$aws_access_key_id
-    - export AWS_SECRET_ACCESS_KEY=$aws_secret_access_key
-    - apk --no-cache add --update curl python python-dev py-pip
-    - pip install awscli --upgrade --user
-    - export PATH=~/.local/bin:/usr/bin/:$PATH
-    - pip install ecs-deploy
-    - aws s3 cp s3://${CI_REV_BUCKET}/${CI_SERVICE_NAME} ./
-    - REV=`cat ./${CI_SERVICE_NAME}`
-    - echo rev is $REV
-    - ecs deploy --region ${AWS_REGION} ${CLUSTER_NAME} ${CI_SERVICE_NAME} --task ${REV} -e ${CI_CONTAINER_NAME} AWS_S3_ACCESS_KEY $AWS_S3_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_S3_SECRET_KEY $AWS_S3_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_S3_REGION $AWS_S3_REGION -e ${CI_CONTAINER_NAME} AWS_S3_BUCKET $AWS_S3_BUCKET -e ${CI_CONTAINER_NAME} AWS_SES_SECRET_KEY $AWS_SES_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_SES_ACCESS_KEY $AWS_SES_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_SES_REGION $AWS_SES_REGION -e ${CI_CONTAINER_NAME} EMAIL_SENDER $EMAIL_SENDER -e ${CI_CONTAINER_NAME} secret $SECRET -e ${CI_CONTAINER_NAME} DATABASE $DATABASE -e ${CI_CONTAINER_NAME} DB_USER $DB_USER -e ${CI_CONTAINER_NAME} DB_PASS $DB_PASS -e ${CI_CONTAINER_NAME} DB_HOST $DB_HOST -e ${CI_CONTAINER_NAME} ORCID_CLIENT_ID $ORCID_CLIENT_ID -e ${CI_CONTAINER_NAME} ORCID_CLIENT_SECRET $ORCID_CLIENT_SECRET -e ${CI_CONTAINER_NAME} CLIENT_BASE_URL $CLIENT_BASE_URL -e ${CI_CONTAINER_NAME} FTP_USERNAME $FTP_USERNAME -e ${CI_CONTAINER_NAME} FTP_PASSWORD $FTP_PASSWORD -e ${CI_CONTAINER_NAME} FTP_HOST $FTP_HOST 
+    - develop
+  variables:
+    PACKAGE_NAME: xpub-faraday
+    IMAGE_TAG: latest
   environment:
     name: qa
-    url: $CI_ALB_URL
+    url: http://qa.faraday.hindawi.com
+  script:
+    - source deploy.sh
+    - create_deployment
 
-rollback-qa:
-  stage: rollback
+deploy:staging:
+  image: pubsweet/deployer:latest
+  stage: deploy
   when: manual
   only:
-    - develop
-  script:
-    - export AWS_REGION="us-east-1"
-    - export AWS_ACCESS_KEY_ID=$aws_access_key_id
-    - export AWS_SECRET_ACCESS_KEY=$aws_secret_access_key
-    - apk --no-cache add --update curl python python-dev py-pip
-    - pip install awscli --upgrade --user
-    - export PATH=~/.local/bin:/usr/bin/:$PATH
-    - pip install ecs-deploy
-    - aws s3 cp s3://${CI_REV_BUCKET}/${CI_SERVICE_NAME} ./
-    - REV=`cat ./${CI_SERVICE_NAME}`
-    - echo rev is $REV
-    - ecs deploy --region ${AWS_REGION} ${CLUSTER_NAME} ${CI_SERVICE_NAME} --task ${REV} -e ${CI_CONTAINER_NAME} AWS_S3_ACCESS_KEY $AWS_S3_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_S3_SECRET_KEY $AWS_S3_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_S3_REGION $AWS_S3_REGION -e ${CI_CONTAINER_NAME} AWS_S3_BUCKET $AWS_S3_BUCKET -e ${CI_CONTAINER_NAME} AWS_SES_SECRET_KEY $AWS_SES_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_SES_ACCESS_KEY $AWS_SES_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_SES_REGION $AWS_SES_REGION -e ${CI_CONTAINER_NAME} EMAIL_SENDER $EMAIL_SENDER -e ${CI_CONTAINER_NAME} secret $SECRET -e ${CI_CONTAINER_NAME} DATABASE $DATABASE -e ${CI_CONTAINER_NAME} DB_USER $DB_USER -e ${CI_CONTAINER_NAME} DB_PASS $DB_PASS -e ${CI_CONTAINER_NAME} DB_HOST $DB_HOST -e ${CI_CONTAINER_NAME} ORCID_CLIENT_ID $ORCID_CLIENT_ID -e ${CI_CONTAINER_NAME} ORCID_CLIENT_SECRET $ORCID_CLIENT_SECRET -e ${CI_CONTAINER_NAME} CLIENT_BASE_URL $CLIENT_BASE_URL -e ${CI_CONTAINER_NAME} FTP_USERNAME $FTP_USERNAME -e ${CI_CONTAINER_NAME} FTP_PASSWORD $FTP_PASSWORD -e ${CI_CONTAINER_NAME} FTP_HOST $FTP_HOST 
+    - master
+  variables:
+    PACKAGE_NAME: xpub-faraday
+    IMAGE_TAG: staging
   environment:
-    name: qa
-    url: $CI_ALB_URL
\ No newline at end of file
+    name: staging
+    url: http://faraday.hindawi.com
+  script:
+    - source deploy.sh
+    - create_deployment
diff --git a/Dockerfile b/Dockerfile
index af297f67bc3ab2c6bfea7267b9eecc736b0e93b9..d00693285f68ab5f0c4f5e4d97d59e0d9fd7ae09 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,22 +5,18 @@ WORKDIR ${HOME}
 COPY package.json yarn.lock ./
 COPY lerna.json .babelrc .eslintignore .eslintrc .prettierrc .stylelintignore .stylelintrc ./
 COPY packages packages
-COPY now now
 
 RUN [ "yarn", "config", "set", "workspaces-experimental", "true" ]
 
-# We do a development install because react-styleguidist is a dev dependency
 RUN [ "yarn", "install", "--frozen-lockfile" ]
-
-# Remove cache and offline mirror
 RUN [ "yarn", "cache", "clean"]
 RUN [ "rm", "-rf", "/npm-packages-offline-cache"]
 
-
-ENV NODE_ENV "development"
+ENV NODE_ENV "production"
 WORKDIR ${HOME}/packages/xpub-faraday
-# RUN [ "npm", "run", "server "]
+
+RUN [ "npx", "pubsweet", "build"]
 
 EXPOSE 3000
 
-CMD [ "npm", "run", "start-now" ]
\ No newline at end of file
+CMD []
\ No newline at end of file
diff --git a/Dockerfile-development b/Dockerfile-development
new file mode 100644
index 0000000000000000000000000000000000000000..abc8753aa68cd5dfdc765fdd66fa7f0bc28b31bf
--- /dev/null
+++ b/Dockerfile-development
@@ -0,0 +1,20 @@
+FROM xpub/xpub:base
+
+WORKDIR ${HOME}
+
+COPY package.json yarn.lock ./
+COPY lerna.json .babelrc .eslintignore .eslintrc .prettierrc .stylelintignore .stylelintrc ./
+COPY packages packages
+
+RUN [ "yarn", "config", "set", "workspaces-experimental", "true" ]
+
+RUN [ "yarn", "install", "--frozen-lockfile" ]
+RUN [ "yarn", "cache", "clean"]
+RUN [ "rm", "-rf", "/npm-packages-offline-cache"]
+
+ENV NODE_ENV "development"
+WORKDIR ${HOME}/packages/xpub-faraday
+
+EXPOSE 3000
+
+CMD [ "npm", "run", "start-now" ]
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index 34e800990414df3e1fd12e239c51d7bdeec5c072..b4aa1dc1be2196cb8b1290417b8af9e915fac345 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -4,7 +4,7 @@ services:
   app:
     build:
       context: .
-      dockerfile: ./Dockerfile
+      dockerfile: ./Dockerfile-development
     command: sh -c "cd packages/xpub-faraday && yarn install --frozen-lockfile && ./scripts/wait-for-it.sh postgres:5432 -s -t 40 -- npx pubsweet server"
     ports:
       - ${PORT:-3000}:3000
diff --git a/packages/component-manuscript-manager/src/routes/technicalChecks/patch.js b/packages/component-manuscript-manager/src/routes/technicalChecks/patch.js
index 3e6061fd3c42e9077eca698b5fb8ae67c75f0c0e..14e68a7cc4b745752a5ddd2d23a733876f0f9a85 100644
--- a/packages/component-manuscript-manager/src/routes/technicalChecks/patch.js
+++ b/packages/component-manuscript-manager/src/routes/technicalChecks/patch.js
@@ -38,7 +38,7 @@ module.exports = ({ Collection, Fragment, User }) => async (req, res) => {
 
     delete collection.technicalChecks.token
     if (step === TECHNICAL_STEPS.EQA) {
-      collection.technicalChecks.hasEQA = agree
+      collection.technicalChecks.hasEQA = true
     }
     collection.status = setNewStatus(step, agree)
     await collection.save()
diff --git a/packages/xpub-faraday/app/index.html b/packages/xpub-faraday/app/index.html
index fe975b733e9074fe352d024bee816dc961bf195d..9dfcd619060052a1bd0709f36fcd48e52c1e0e1a 100644
--- a/packages/xpub-faraday/app/index.html
+++ b/packages/xpub-faraday/app/index.html
@@ -6,6 +6,6 @@
 </head>
 <body style="margin: 0;">
   <div id="root"></div>
-  <script src="/assets/app.js"></script>
+  <script type="text/javascript" src="/assets/app.js"></script>
 </body>
 </html>
diff --git a/packages/xpub-faraday/config/default.js b/packages/xpub-faraday/config/default.js
index 240d9aeb815ce076fea4b5ed7a6b214a4e8156a1..daf2f46d9f92f960ea7d08dbb00a95331ab3caad 100644
--- a/packages/xpub-faraday/config/default.js
+++ b/packages/xpub-faraday/config/default.js
@@ -117,6 +117,11 @@ module.exports = {
     path: `${__dirname}/mailer`,
     editorialAssistant: 'hindawi+editorial@thinslices.com',
   },
+  SES: {
+    accessKey: process.env.AWS_SES_ACCESS_KEY,
+    secretKey: process.env.AWS_SES_SECRET_KEY,
+    region: process.env.AWS_SES_REGION,
+  },
   publicKeys: ['pubsweet-client', 'authsome', 'validations'],
   statuses: {
     draft: {
diff --git a/packages/xpub-faraday/config/production.js b/packages/xpub-faraday/config/production.js
new file mode 100644
index 0000000000000000000000000000000000000000..9950c9b354fa8710a4f043a07ac2b86a3cf6bd2f
--- /dev/null
+++ b/packages/xpub-faraday/config/production.js
@@ -0,0 +1,3 @@
+const defaultConfig = require('xpub-faraday/config/default')
+
+module.exports = defaultConfig