Hosting your own NuGet feeds
Instead of making packages publicly available, you might want to release packages to only a limited audience, such as your organization or workgroup. In addition, some companies may want to restrict which third-party libraries their developers may use, and thus direct those developers to draw from a limited package source rather than nuget.org.
For all such purposes, NuGet supports setting up private package sources in the following ways:
- Local feed: Packages are simply placed on a suitable network file share, ideally using
nuget addto create a hierarchical folder structure (NuGet 3.3+). For details, see Local Feeds.
- NuGet.Server: Packages are made available through a local HTTP server. For details, see NuGet.Server.
- NuGet Gallery: Packages are hosted on an Internet server using the NuGet Gallery Project (github.com). NuGet Gallery provides user management and features such as an extensive web UI that allows searching and exploring packages from within the browser, similar to nuget.org.
- Artifactory from JFrog.
- Azure Artifacts, which is also available on Team Foundation Server 2017 and later.
- BaGet, an open-source implementation of NuGet V3 server built on ASP.NET Core
- Bytesafe A fully managed package and supply chain security platform
- Cloudsmith, a fully managed package management SaaS
- Feedz.io a fully managed package management SaaS
- Gitea, an open-source, self-hostable Git service supports NuGet as a package registry
- GitHub package registry
- GitLab Package Registry
- JetBrains Space
- LiGet, an open-source implementation of NuGet V2 server that runs on kestrel in docker
- Nexus Repository OSS from Sonatype.
- NuGet Server (Open Source), an open-source implementation similar to Inedo's NuGet Server
- NuGet Server, a community project from Inedo
- ProGet from Inedo
- Sleet, an open-source NuGet V3 static feed generator
- TeamCity from JetBrains.
Regardless of how packages are hosted, you access them by adding them to the list of available sources in
NuGet.Config. This can be done in Visual Studio as described in Package Sources, or from the command line using
nuget sources. The path to a source can be a local folder pathname, a network name, or a URL.