Installation - Docker

Installation - Docker

Overview

To deploy PSKnowHOW, the following containers are essential:

  1. UI

  2. CustomAPI

  3. MongoDB

Optional containers can be included based on specific requirements:

  • jira-processor

  • devops-processor (collectors for Jenkins, GitHub, GitLab, Bamboo, Bitbucket, Zephyr, Sonar, and TeamCity)

  • azure-board-processor (for Azure Board)

  • azure-pipeline-repo (for Azure Pipeline and Azure Repo)

You can selectively deploy these containers as needed.


Step 1: Create Folder Structure

To create the "PSKnowHOW" directory on a Linux system:

mkdir /location/PSKnowhow

Replace /location/PSKnowhow with your preferred location. Ensure you have appropriate permissions and sufficient storage in the chosen directory.


Step 2: Download docker-compose.yaml

  1. Navigate to the PSKnowHOW GitHub repository.

  2. Right-click on the Raw button and select Save link as to download the docker-compose.yaml file as shown below:

download-docker-compose.png
  1. Save the file in the previously created PSKnowHOW folder.


Step 3: Download Auth Service docker-compose.yaml

  1. Download Auth Service docker-compose.yaml.

  2. Open the file in your preferred editor.

  3. Replace placeholders (e.g., Docker image tags, DB username, password) with appropriate values.


Step 4: Edit docker-compose.yaml

  1. Update database credentials and other environment variables as specified in the Application Environmental Variables documentation.

  2. Create a read-write privileged MongoDB user:

    docker exec -it mongodb /bin/bash mongo admin -u ${MONGO_INITDB_ROOT_USERNAME} -p ${MONGO_INITDB_ROOT_PASSWORD} use kpidashboard db.createUser({user: '<MONGODB_APPLICATION_USER>', pwd: '<MONGODB_APPLICATION_PASS>', roles:[{role:'readWrite', db:'kpidashboard'}]}) exit

Step 5: Pull Docker Images and Run Containers

  1. Open a terminal in the PSKnowHOW folder.

  2. Pull the images:

    docker-compose pull
  3. Run the containers:

    docker-compose up -d

Step 6: Run Auth Service Docker Container

  1. Pull the Auth Service Docker image:

    docker-compose pull
  2. Run the container:

    docker-compose up -d
  3. Connect the KnowHOW container with Auth containers:

    docker network connect <auth container network> <knowhow ui container name>
  4. Access the application using the DNS in your browser.


Step 7: Run Database Backup Script

  1. Download the shell script to /var/knh on the server.

  2. Grant executable permissions:

    chmod +x /var/knh/dbbackup.sh
  3. Automate the backup process with crontab:

    (crontab -u root -l; echo "0 23 * * 1-7 /var/knh/dbbackup.sh") | crontab -u root -

    This schedules the backup every day at 11:00 PM.


Step 8: Backing Up to AWS S3

  1. Create an S3 Bucket: Set up an Amazon S3 bucket in a different region for redundancy.

  2. Configure AWS CLI: Install and configure the AWS CLI on your server.

  3. Modify Backup Script: Edit the dbbackup.sh script to include:

    aws s3 cp /var/backups/backup_filename.sql s3://your-s3-bucket-name/

Step 9: Post-Installation Steps

After completing the installation, refer to the Post-Installation Guide for further steps.

© 2022 Publicis Sapient. All rights reserved.