Skip to content

Running locally

The quick start gets you a feed with API-key auth. To also sign in to the web UI as a real user, NuGetKeep needs an OIDC provider — and for a local try-out you don’t have to set one up: the installer can bundle a local Dex identity provider, seeded with a login you choose.

Terminal window
curl -fsSL https://nugetkeep.com/install | bash -s -- --with-dex \
--dex-email you@example.com --dex-password 'choose-a-password'

This brings up the regular compose stack plus a Dex container, wires the NUGETKEEP_OIDC_* settings for you, and makes your email an Admin on first login. If you omit --dex-email/--dex-password, the wizard prompts for them (in non-interactive --yes runs a password is generated and printed in the summary).

One one-time step: the app and your browser must both be able to reach the IdP under the same name, so the installer asks you to map the dex hostname (it prints this exact line if it’s missing from /etc/hosts):

Terminal window
echo '127.0.0.1 dex' | sudo tee -a /etc/hosts

Then open the UI (the install summary prints the URL, http://localhost:8080/ by default), click Sign in, and log in with the email and password you chose.

Bundled-Dex mode is local/dev only — it runs over plain HTTP in Development mode. Don’t expose it or use it in production. To wire your own identity provider in production, see Identity & SSO.

If you have a checkout of the source repository, scripts/run-dev.sh is the equivalent dev loop: it starts Dex via docker-compose.dev.yml, runs NuGetKeep on http://localhost:5337, and serves the marketing site on http://localhost:5338 (pass --no-site to skip it). Sign in with the seeded test account dev@nugetkeep.local / password (auto-granted Admin via NUGETKEEP_BOOTSTRAP_ADMINS). These credentials live in dev/dex/config.yaml and are for local development only. Press Ctrl+C to stop (also tears down Dex).