Sleet¶
Sleet is a command-line tool that creates and updates static NuGet v3 package feeds. The feed is a set of plain files in Azure Blob Storage, Amazon S3, S3-compatible storage, or a folder on a web server. NuGet clients restore packages straight from those files, so there is no server or database to run.
flowchart LR
A[dotnet pack] --> B[sleet push]
B --> C[(Azure Blob Storage, Amazon S3, or a folder)]
C --> D[dotnet restore, Visual Studio, nuget.exe]
Why use a static feed¶
- There is nothing to run, patch, or scale. Storage services are cheap and highly available.
- All the work happens when you push. Restores are plain HTTP file downloads.
- The feed works with every NuGet v3 client, including
dotnet, Visual Studio, andnuget.exe. - You keep full control of your packages and where they are stored.
Sleet also supports a symbol server, version badges, package retention, and CDN cache headers.
Choose where to host the feed¶
| Storage | Good fit | Guide |
|---|---|---|
| Azure Blob Storage | Teams on Azure. Sign in with Microsoft Entra ID. | Create an Azure feed |
| Amazon S3 | Teams on AWS. | Create an Amazon S3 feed |
| S3-compatible storage | Cloudflare R2, MinIO, DigitalOcean Spaces, Backblaze B2, and similar services. | S3-compatible storage |
| Local folder | Serving packages from your own web server, or testing. | Create a local feed |
Quick start¶
Install Sleet. It needs the .NET 8 SDK or later. See Install Sleet for other options.
Create a sleet.json file for your storage type, then edit it with your account details. The storage guides above show what to set.
Push a folder of packages. On the first push, Sleet creates the container or bucket if needed and sets up the feed.
Add the feed's index.json URL to NuGet:
See Use a feed with NuGet for NuGet.Config examples and private feeds.
Things to know first¶
- Feeds are public by default. Anyone who knows the URL can read them. To make a feed private, see private feeds.
- Sleet doesn't support unlisting. Deleting a package removes it from the feed.
- Search is a static file that returns every package, whatever the search term. On large feeds, Visual Studio can show incomplete results.
See limitations for the full list.
Find your way around¶
| Section | What it covers |
|---|---|
| Get started | Install, Azure, Amazon S3, local folders, and using a feed. |
| Guides | Authentication, CI, private feeds, hosting, feed features, and maintenance. |
| Reference | Commands, client settings, environment variables, and feed settings. |
| Concepts | How Sleet works, feed locking, and limitations. |
| Help | Troubleshooting, FAQ, and release notes. |
Get help¶
- Search or open an issue on GitHub.
- Run a failing command with
SLEET_DEBUG=1to see debug output. See debug output. - Pull requests that improve the docs are welcome. See contributing.