Planning Your Install

This document describes the deployment options that are available with an on-premise installation of FOSSA. You'll need to carefully select the software and infrastructure components that best suit your use case and experience level.

These deployment options include:

  1. All-In-One (AIO) Option with MinIO
    • FOSSA will install and set up Kubernetes, a 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 AmazonS3
    • FOSSA will install and set up Kubernetes, a Postgres database, and will use Amazon S3 for object storage.
    • An S3 bucket must be created with the appropriate CORS security policy prior to installation.
  3. External DB with MinIO
    • FOSSA will install and set up Kubernetes and Minio for object storage.
    • FOSSA will connect to an external Postgres database.
    • The Postgres version must be 12.x or higher.
    • The Postgres database must be created and available prior to installation.
  4. External DB with Amazon S3
    • FOSSA will install and set up Kubernetes.
    • FOSSA will connect to an external Postgres database S3 for object storage.
    • Both the S3 bucket and Postgres database must be created and available prior to installation.
  5. Existing Kubernetes Installation
    • FOSSA will be deployed in an existing Kubernetes cluster.
    • FOSSA will connect to an external Postgres database and S3 bucket for object storage.
    • Both the S3 bucket and Postgres database must be created and 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 12.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 22.04 or CentOS 8

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

Hardware Requirements: Minimum 32 CPU cores and 64 GB RAM

  • As more analysis throughput is needed, more build workers are required.
  • For additional build workers we recommends 2 vCPU cores and 2GB of RAM each.
    • Requirements may vary depending on desired analysis throughput and individual build requirements.

Storage requirements for root partition: 100 GB (expandable) or move docker/containerd related data to another partition.

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.
Note: External IP only required when you deploy single node kubernetes cluster.

-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.