Requirements
Operating System Requirements
For Docker based installation, any Linux distribution with Docker support is required. Further information on compatibility of Docker CE and EE can be found on the Docker help center: https://docs.docker.com/install/overview/.
Docker on Windows and Mac is currently not supported by Embold.
Docker Hub Account Requirements
- Embold is currently available in our private docker repository at https://hub.docker.com
- In order to get access to the Embold container image, follow the steps below:
- Create an account on https://hub.docker.com.
- Send us your Docker ID via email.
- Install Docker Engine by following the steps mentioned here: “Installing Docker Engine”.
- We will provide access to the Embold image for the Docker ID you provide and send you a confirmation via email.
- Proceed to install the Embold Docker Image (Refer section “Installing Embold Docker Image”) after you receive the confirmation.
Hardware Requirements
Computing
- We recommend a minimum of 2 dedicated cores
- For projects > 1 Mio. Lines of code 4 cores are recommended
- For projects > 3 Mio. Lines of code 8 cores are recommended.
Memory
- Minimum 8 GB RAM (dedicated)
- For projects > 1 Mio. Lines of code 16 GB RAM are recommended
- For projects > 3 Mio. Lines of code 32 GB RAM are recommended.
Storage
- Minimum of 100 GB storage
- Should be expandable to support a growing analysis history
- The table below gives an indication on the growing storage requirements:
Lines of Code | Storage size of 1 full snapshot |
100.000 | About 70-90MB |
1.000.000 | About 700MB – 1.2GB |
2.000.000 | About 1.2 – 2GB |
Table 1:Storage estimations
Networking Requirements
During Installation
- The instance needs to be accessible through SSH.
- Connectivity to the docker hub must be possible.
After Installation
- One port needs to be exposed to access Embold via HTTP on the browser (by default port 3000)
- For remote scans where scans run on a build machine and results are published to the Embold server, port 5432 also needs to be exposed
- Connectivity to all external systems that should be integrated is required on the relevant ports-
- This includes connectivity to the repositories (i.e. git, GitHub, GitLab, TFS, SVN) on the required ports (i.e. HTTPS, SSH)
- If CI integration is required, connectivity between Embold on the CI system is required
- If task management is required, connectivity between Embold and the task management system needs to be there (i.e. for Jira, Teamforge)
Environment Variables
- Requires the following environment flag:
ACCEPT_EULA=Y
ACCEPT_EULA
confirms your acceptance of the End-User Licensing Agreement.
Installing Docker engine
Docker engine needs to be installed on the host prior to installing the Embold Docker image.
Depending on your OS, refer the following steps to setup Docker Engine.
A. Docker Engine on CentOS
Follow the steps listed at this link.
B. Docker Engine on Ubuntu
Follow the steps listed at this link.
Installing Embold Docker image
Prerequisite:
Your docker ID should be enabled for our private repository to download the Embold image.
The tag name {VERSION} is mentioned as an example in below commands. You can use your latest preferred tag from docker. For example: tag name can be 1.7.0.0
Refer section Docker Hub Account Requirements before proceeding with Installation of Embold Docker image.
Login to Docker Hub from CLI
Login to docker using docker CLI using your docker ID and password when prompted:
$ docker login
Download and install the Embold Docker Image
docker run -m 8GB -d -p 3000:3000 -p 5432:5432 --name EMBOLD -e gamma_ui_public_host=http://localhost:3000 -e EMB_USE_NATIVE_PYPARSER=TRUE -e RISK_XMX=-Xmx1024m -e ACCEPT_EULA=Y -e ANALYSER_XMX=-Xmx3072m -v gamma_data:/opt/gamma_data -v gamma_psql_data:/var/lib/postgresql -v /home/${USER}/docker/logs:/opt/gamma/logs embold/gamma:${VERSION}
Note:If you didn’t add the current user to the docker group (sudo usermod -aG docker $(whoami)), you may need to run the above commands with sudo.
The above steps will download and install the Embold Docker Image.
You can then access Embold at: http://localhost:3000
Note:After executing the “docker run” command it may take upto 2 minutes for the Embold server to be up and running on port 3000.
Note:The memory settings (-m option, RISK_XMX, ANALYSER_XMX may need to be increased when analysing code bases larger than 1 million LOC)
Activate Embold
Once the above steps are performed, head to https://docs.embold.io/managing-license/#activating-gamma-onpremise to activate Embold.
Running a scan
Once Gamma is successfully activated, head to https://docs.embold.io/scans-snapshots/#steps-to-scan-a-repository to learn how to run your first scan.
Installing Embold Docker and Corona (Embold Analyser) Docker for remote scan
This section provides general steps on how to run a remote scan (i.e. scan happens on a build machine, e.g. for C/C++ and results are pushed to the Embold server running as a Docker container
Pre-requisites: You have set up the Embold Docker Server (Refer section “Installing Embold Docker Image”)
Note that this is an example setup which shows how the Embold Analyser Docker can be used to run a scan together with your build, assuming your build script is also runnable inside the docker container. Your actual build setup may vary (e.g. you may be running the build directly on a host machine, in which case you need to natively install the Embold Analyser component instead of using the docker image)
Download, install and run the Standalone Corona Docker Image
The following steps will download and install the Corona Docker image on remote machine from where remote scan will be initiated (e.g. the build machine)
$ docker run -it -e ANALYSIS_MODE=remote embold/corona:${VERSION} sh
Script which triggers Embold scan. The script can also be a custom script that internally builds the code, runs the unit test and calls Embold analysis.
Example:
$ docker run -it -e ANALYSIS_MODE=remote embold/corona:${VERSION} sh gamma-scan.sh