S3 Configuration

Setting up an S3 Bucket in FOSSA

In order to take advantage of FOSSA's Package Cache and Archive Uploading features, you will need to configure an S3 compatible bucket.

Setting up AWS S3

Follow the S3 docs here: Create a Bucket in AWS to set up S3 using Amazon's service

Setting up Minio S3

For on premises customers without access to Amazon S3, another alternative in order to take advantage of FOSSA's package caching and Archive uploader features is setting up and hosting your own Minio storage service (https://www.minio.io/).

πŸ“˜

From the Minio Documentation (https://docs.minio.io/):

Minio is an object storage server released under Apache License v2.0. It is compatible with Amazon S3 cloud storage service. It is best suited for storing unstructured data such as photos, videos, log files, backups and container / VM images. Size of an object can range from a few KBs to a maximum of 5TB.

To set this up, you can follow the quickstart guide here: Quickstart Guide

🚧

Note: If you are using https:// to access the fossa app then access to Minio would need to be https:// as well.

Configuring FOSSA

After creating an S3 Compatible Bucket, you will need to configure this in FOSSA. To do this, you must update your config.env file with the following additional parameters:

# Package caching
cache__package__engine=s3
cache__package__bucket=<name of s3 bucket for cache>
cache__package__s3Options__accessKeyId=<s3 accessKeyId>
cache__package__s3Options__secretAccessKey=<s3 secretAccessKey>
cache__package__s3Options__endpoint=<URL to s3 service>
cache__package__s3Options__s3ForcePathStyle=true
# To store private code
cache__package__store_private=true

# Archive Uploading (may differ from Package Caching config)
s3__accessKeyId=<s3 accessKeyId>
s3__secretAccessKey=<s3 secretAccessKey>
s3__endpoint=<URL to s3 service>
componentUploader__bucket=<name of s3 bucket for archive>

Keep in mind if you're using Minio, it expects explicit bucket URLs instead of simple names so I would recommend naming your buckets something like:

  • cache.fossa.io (for the package cache bucket)
  • archive.fossa.io (for the archive uploading bucket)