Developer documentation

Build a private feed
you control.

Get oriented with the current alpha implementation, ASP.NET Core integration and customer-facing package distribution model.

Current release status

Free alpha release candidate, not yet published on NuGet.org. Documentation here describes the project's current implementation and local development setup, not a production-certified installation.

Preview only: There is no public package installation or live checkout on this site. The Premium edition, production PayPal integration, subscription-payment fulfillment and end-to-end security sign-off remain in progress.

Quick start

During development, pack the local projects rather than attempting a NuGet.org installation. The core package IDs are NuGetPremium and NuGetPremium.Sqlite.

Build packages locally · shell
dotnet pack src/NuGetPremium/NuGetPremium.csproj -c Release -o ./release-packages
dotnet pack src/NuGetPremium.Sqlite/NuGetPremium.Sqlite.csproj -c Release -o ./release-packages

Register services in your ASP.NET Core host and configure a private SQLite connection string:

Program.cs · C#
using NuGetPremium;
using NuGetPremium.Sqlite;

var builder = WebApplication.CreateBuilder(args);
var connection = builder.Configuration.GetConnectionString("NuGetPremium")
    ?? throw new InvalidOperationException("Configure SQLite privately.");

builder.Services.AddNuGetPremium();
builder.Services.UseNuGetPremiumSqlite(connection);

var app = builder.Build();
app.MapNuGetPremium("/nuget");
app.Run();

Host the public feed through HTTPS. The service index is typically https://your-store.example/nuget/index.json; it is a download endpoint, not an upload route.

Publishing packages

Use the local administrator dashboard to upload a compiled .nupkg. The package ID and version are read from its root .nuspec, and existing published versions cannot be overwritten.

  1. Build your library into a NuGet package.
  2. Open the localhost-only dashboard using the configured administrator secret.
  3. Choose the package upload action to publish the version.
  4. Grant an authorized customer access, separately from the package upload.

The Free edition enforces one distinct hosted package ID, with unlimited versions and customers.

Customer access and restores

NuGetPremium separates entitlement from authentication. A verified purchase or trusted manual grant establishes the customer's right to download; a revocable feed credential authenticates each request.

Configure feed credentials · shell
# First configure a NuGet source named MerchantFeed pointing
# at https://your-store.example/nuget/index.json
export NuGetPackageSourceCredentials_MerchantFeed='Username=developer;Password=PASTE_ONCE_SHOWN_TOKEN;ValidAuthenticationTypes=basic'
dotnet restore
unset NuGetPackageSourceCredentials_MerchantFeed

The optional customer portal supports feed-key sign-in and package/subscription visibility. The merchant remains responsible for production HTTPS, request throttling and recovery.

Revocation boundary: revoking feed access blocks future downloads. It cannot erase package bytes customers already restored or cached.

Local developer dashboard

The administrator dashboard runs only on loopback by default. Configure it when you want an interface for package uploads, pricing records, entitlements and recorded activity.

Optional registration · C#
builder.Services.AddNuGetPremiumDashboard(options =>
{
    options.ConnectionString = connection;
    options.AdminKey = builder.Configuration["NuGetPremium:Dashboard:AdminKey"]
        ?? throw new InvalidOperationException("Set an admin secret.");
    options.Port = 5190;
});

The real dashboard must stay bound to 127.0.0.1:5190. The public demo is a separate static simulation, not an admin login.

Offer catalog and billing intervals

The local SQLite product catalog supports one-time, monthly, quarterly, half-yearly and yearly offer definitions. It stores merchant-configured prices and terms, not real revenue or payment settlements.

PayPal integration currently covers sandbox scenarios. Production checkout, renewals and subscription fulfillment still need verification before commercial release.

Security and hosting requirements

  • Host customer-facing feeds over HTTPS and configure trusted reverse-proxy headers.
  • Protect dashboard secrets with environment variables or a secure secret store, never public source files.
  • Keep SQLite files outside publicly served directories and test backups and restores.
  • Keep the administrator dashboard on loopback; do not publish port 5190.
  • Enforce rate limiting, CSRF protection and secure session handling for merchant-owned customer flows.
  • Verify payment callbacks and entitlement changes before granting access.

These are deployment responsibilities and pre-release requirements; this documentation does not constitute production security certification.

Free and Premium

Free: a proprietary alpha candidate supporting one hosted package ID, unlimited versions and customers, and the local protected feed tooling. Publication is subject to release approval.

Premium: under development. Paid-edition licensing, price tiers and live commercial checkout are not available on this promotional website.