Configuring third-party storage for packages

You can configure the third-party service that GitHub Packages uses to store your enterprise's packages.

In this article

Note: GitHub Packages is currently in beta for GitHub Enterprise Server 2.22. To join the beta for your instance, use the sign-up form.

About third-party storage for GitHub Packages

GitHub Packages on GitHub Enterprise Server uses external blob storage to store your packages. The amount of storage required depends on your usage of GitHub Packages.

At this time, GitHub Packages supports blob storage with Amazon Web Services (AWS) S3. MinIO is also supported, but configuration is not currently implemented in the GitHub Enterprise Server interface. You can use MinIO for storage by following the instructions for AWS S3, entering the analogous information for your MinIO configuration. Before configuring third-party storage for GitHub Packages on GitHub, you must set up a bucket with your third-party storage provider. For more information on installing and running a MinIO bucket to use with GitHub Packages, see the "Quickstart for configuring MinIO storage."

For the best experience, we recommend using a dedicated bucket for GitHub Packages, separate from the bucket you use for GitHub Actions storage.

Configuring AWS S3 as storage for GitHub Packages

Warnings:

  • It's critical you set the restrictive access policies you want for your storage bucket because GitHub does not apply specific object permissions or additional access control lists (ACLs) to your storage bucket configuration. For example, if you make your bucket public, data in the bucket will be accessible on the public internet. For more information, see Setting bucket and object access permissions in the AWS Documentation.
  • We recommend using a dedicated bucket for GitHub Packages, separate from the bucket you use for GitHub Actions storage.
  • Make sure to configure the bucket you'll want to use in the future. We do not recommend changing your storage after you start using GitHub Packages.

Before you configure AWS as storage for GitHub Packages, make sure your AWS access key ID and secret have the following permissions:

  • s3:PutObject
  • s3:GetObject
  • s3:ListBucketMultipartUploads
  • s3:ListMultipartUploadParts
  • s3:AbortMultipartUpload
  • s3:DeleteObject
  • s3:ListBucket
  1. From an administrative account on GitHub Enterprise Server, click in the upper-right corner of any page.
    Rocketship icon for accessing site admin settings
  2. In the left sidebar, click Management Console.
    Management Console tab in the left sidebar
  3. In the left sidebar, click Packages.
    Packages tab in management console sidebar
  4. Under "AWS Service URL", type the S3 endpoint URL for your bucket's region.
    AWS Service URL field
  5. Under "AWS S3 Bucket", type the name of the S3 bucket you want to use to store package artifacts.
    AWS S3 Bucket field
  6. Under "AWS S3 Access Key", type your access key for S3.
    AWS S3 Access Key field
  7. Under "AWS S3 Secret Key", type your secret key for S3.
    AWS S3 Secret Key field
  8. Under "AWS S3 Region", type your region for S3.
    AWS S3 Region field
  9. Under the left sidebar, click Save settings.
    The Save settings button in the Management Console
  10. Wait for the configuration run to complete.

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Or, learn how to contribute.