BaGetter Private NuGet Package Feed Server

AWS Developer Tools

BaGetter, a lightweight self-hosted private NuGet feed server, ready to host and serve your own .NET packages from first boot.

Base
Hardened build
minimal ports, security patches applied at build time
Access
Unique credentials
generated on first boot, readable only by root
Verified
Boots working
services pass a health gate before release
Support
24/7, 365 days
by email and live chat, 24 hour response SLA

Overview

BaGetter is a lightweight, self-hosted server for hosting your own private NuGet package feed. It implements the standard NuGet v3 protocol, so any .NET toolchain can restore from it and push to it with the tools developers already use, and it presents a clean, browsable web gallery for searching packages, reading their metadata and dependencies, and copying install commands. Packages and their symbols are stored on the server you control, with metadata in a self contained database and package files on local disk. It can also mirror packages from the public nuget.org feed on demand, so a build that asks for a public package is served a locally cached copy, giving a team a fast, resilient, single source for both its private and public dependencies.

It suits teams and individuals who want their private .NET libraries to stay on infrastructure they own: an internal package feed for a company's shared libraries, a caching proxy in front of nuget.org for reliable and fast restores, or a private feed for open source authors who publish their own packages.

Why the cloudimg image

cloudimg delivers BaGetter fully installed and configured behind nginx, so the web gallery and the NuGet v3 API answer the moment the instance boots with nothing to assemble. It ships secure by default with no shared credential: upstream BaGetter allows anyone to push packages by default, so on the first boot of every instance a unique push API key is generated and written to a root only file, and the feed refuses to start until that per instance key is in place, so no two instances share a key and none is ever baked into the image. Package browsing and restore stay open for your network while pushing is gated by the key. The package store and its database live on a dedicated data volume that is captured into the image and re provisioned on every instance, the base is fully patched with unattended security upgrades enabled, and every deployment is paired with a step by step deploy guide, backed by 24/7 cloudimg support.

Common uses

  • Host a private NuGet feed for a team's shared .NET libraries
  • Cache and mirror nuget.org for fast, resilient package restores
  • Publish and browse your own packages from a self owned gallery

Key features

  • Secured, self-hosted BaGetter NuGet package feed server built from the pinned open source release into a hardened systemd service on a dedicated data volume, ready with no manual setup - push and restore with the standard NuGet tools your developers already use
  • Secure by default: BaGetter binds to loopback behind an nginx TLS front door on port 443, package push is gated by an API key generated uniquely on every instance's first boot, and no shared or default credential ships in the image - read access stays open in the standard private-feed posture
  • 24/7 technical support from cloudimg, with expert help on deployment, connecting NuGet clients and CI pipelines, TLS termination, upstream mirroring, backups and scaling

See it running

Real screenshots taken while testing this image against its deployment guide.

BaGetter Private NuGet Package Feed Server screenshot 1 BaGetter Private NuGet Package Feed Server screenshot 2 BaGetter Private NuGet Package Feed Server screenshot 3

Description

This is a repackaged open source software product wherein additional charges apply for cloudimg support services.

## Why This AMI Instead of Self-Deploying?

BaGetter is a lightweight, self-hosted, open source NuGet package feed server. It hosts your organisation's private .NET packages, exposes the standard NuGet v3 service index that any NuGet client can restore from, and provides a browsable web gallery for discovering what is published. Deploying it yourself means installing a .NET runtime, building or publishing the application, running it as a hardened service, generating and wiring up a push API key so the feed is not open to anonymous uploads, and putting a TLS reverse proxy in front so the gallery and API are never served in the clear. This AMI eliminates that effort entirely - a working, secured NuGet feed is running within minutes of launch, not hours, and is backed by 24/7 expert support.

The current release available is BaGetter 1.6.5.

## What This Image Ships

BaGetter is served by a dedicated unprivileged system user under systemd with automatic restarts, clean logging and a hardened service sandbox. It stores package metadata in SQLite and package content on the filesystem, both placed on a dedicated data volume that is separate from the operating system disk so your published packages are independently resizable and snapshottable. The web gallery and the NuGet v3 API are the same standard endpoints every NuGet client already understands, so pushing and restoring packages works with the tools your developers use today.

## Secure By Default

A stock NuGet server can accept anonymous package uploads if no push key is configured, which means anyone who can reach it can publish or overwrite packages. This image eliminates that risk:

  • BaGetter binds to the loopback address only and is fronted by an nginx TLS reverse proxy, so the application is never directly reachable from the network and all traffic to the gallery and API is encrypted
  • The recommended security group opens only SSH (22) and the HTTPS front door (443); scope both to your own developer or administrator network
  • A unique push API key is generated on every instance's first boot and placed in a root only file for the administrator to read; no usable key is baked into the image, so no two deployments share a credential
  • A push with a missing or wrong API key is rejected, while read access - the service index, package restore and the gallery - stays open by design, which is the standard private feed posture
  • A unique self-signed TLS certificate is generated per instance on first boot; replace it with your own certificate or terminate TLS at a load balancer

## Ready To Use

Browse to the instance over HTTPS on port 443 to explore the gallery, add the service index as a restore source in your NuGet client, and push packages with the generated API key. An unauthenticated health endpoint is provided for load balancer probes, so monitoring needs no credential even though package push does.

## What You Avoid By Using This AMI

  • Installing a .NET runtime and publishing the application
  • Running BaGetter as a hardened, unprivileged systemd service on a dedicated data volume
  • Generating a push API key and testing that anonymous uploads are actually refused
  • Standing up a TLS reverse proxy in front of the feed
  • Ongoing maintenance and security patching without expert guidance

## cloudimg Support

24/7 technical support by email and chat with a one-hour average response for critical issues. Our engineers help with deployment, connecting NuGet clients, TLS termination, upstream mirroring, backups and scaling.

## Use Cases

  • A private, in-your-own-VPC NuGet feed for an organisation's internal .NET packages with full data ownership
  • A CI/CD artifact store that build pipelines push to and that developer machines restore from over an encrypted, API-key-protected feed
  • A cached mirror of upstream NuGet packages so builds do not depend on public availability

BaGetter is a trademark of its respective owner. All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.

Related technologies

nugetbagetterpackage feedpackage serverdotnetartifact repositoryprivate feedself hostedpackage managementopen source