Planning Your Install

This document describes the infrastructure options that are available with an on premise implementation of the FOSSA platform. You will need to choose a deployment option and then prepare the appropriate software and infrastructure components that are required to support the selected type of installation.

Following are the deployment options that you can choose:

  1. All-In-One Option with Minio: FOSSA will install and set up Kubernetes, Postgres database and Minio for object storage. This deployment option utilizes a single virtual machine and requires no additional software to be installed prior to the FOSSA installation
  2. Internal DB with S3: FOSSA will install and set up Kubernetes, Postgres database and will use Amazon S3 for object storage. A S3 bucket must be created with the appropriate CORS security policy prior to installation.
  3. Minio with External DB: FOSSA will install and set up Kubernetes and Minio for object storage and will connect to an external Postgres database. ThePostGres version must be 11.x or higher. The Postgres database must be created and available prior to installation.
  4. External DB and AWS S3: FOSSA will install and set up Kubernetes and will connect to the external Postgres database and S3 for object storage. Both the S3 storage bucket and Postgres database must be available prior to installation.
  5. Existing Kubernetes: FOSSA will be deployed in an existing Kubernetes cluster and will connect to the external Postgres database and S3 for object storage.Both the S3 storage bucket and Postgres database must be available prior to installation.

Prerequisite Questions:

1. Installation Platform: Do you have a Kubernetes cluster (k8s) in which FOSSA server can be deployed or do you want FOSSA to set up and install Kubernetes on a Server?

2. Data Storage: For deployments utilizing a virtual server as the platform host with an internal Postgres db and S3 configuration using Minio, the root or system drive should be sized with a 100GB drive.

  • In addition, a data drive should be configured using expandable storage. This drive will contain all data for the Postgres db as well as the S3 storage. This drive can initially be sized at 500GB, but it is highly advisable to speak with your FOSSA Sales Engineer for all technical considerations.

3. Database Storage: The FOSSA platform requires Postgres version 11.x or higher as its database. You can provide your own database instance (preferred) or have FOSSA install Postgres Database as part of the install process.

4. Object Storage: FOSSA server requires a S3 compatible object storage for file caching. You can provide an S3 compatible object storage or have FOSSA install the object storage (Minio) as part of the install process.

5. Certificates: You can bring your certificates or use the self signed certificates generated by FOSSA. Wild card certificates are supported by FOSSA. Depending on the deployment method selected, FOSSA will require the following sets of certificates. 1 set for the FOSSA host and 1 set for the Object storage host. If the FOSSA server and the S3 object storage are installed on the same virtual server, two DNS records are required and should both utilize the primary IP address of the virtual server. Two sets of certificates are required and should align to each host name.

6. Deployment Method: FOSSA server supports several deployment models to accommodate your choices for the Installation platform, Data Storage and Object Storage.

FOSSA recommends choosing an external Postgres database server and S3 compatible object storage.

Server Requirements

Operating System: Ubuntu 18.04 or CentOS 7

Kubernetes Requirements: Kubernetes v1.16.15 or newer, Helm v3

Hardware Requirements: Minimum 16 vCPU cores and 32 GB RAM

Storage requirements for Postgres database: 200 GB (expandable)

Storage requirements for object storage: Min 500 GB. (expandable)
- Recommendation would be to use LVM or a system that would allow the ability to increase storage size as needed.
- The storage requirements for the object storage are determined by the size of your code base and the number of dependencies that FOSSA will scan and analyze.

Networking Requirements:

  • Inbound :
    • 443 - For Application and Object Storage access.
  • Outbound :
    • 443 - Access Public repositories, Internal repositories, JIRA*
    • 25/465/587 - SMTP protocol for Email.
    • 5432 - Connection to the external Postgres database.

Prepare the following:
-External IP and DNS Name (accessible to your users) of the box running FOSSA
subject to your deployment method.

-SMTP server host/port

-Connection details for additional integrations (see guides for GitHub, Bitbucket, JIRA
and more...)
-Make sure all of these endpoints are accessible from the machine running FOSSA.

Once ready, contact [email protected] to schedule an installation.