Product

Overview

How it works Watch it work All 35 features Screenshots How ForgeRepo™ is secured

Keep bad packages out

Malware scanning Typosquat detection Dependency confusion protection Cooling off new releases Allow lists and block lists

When something goes wrong

Kill switch Who has it Lockdown and degraded modes Vulnerability monitoring

Developers and approvals

Requests and auto approve Check, walk and review Waivers Dry run
Formats

Languages

Private npm registry PyPI proxy and private index Private NuGet feed and proxy Maven repository proxy RubyGems mirror Composer and Packagist proxy

Apple, containers and Linux

CocoaPods CDN mirror Swift package registry Docker registry mirror RPM mirror for dnf and yum APT mirror for Debian and Ubuntu

Use it as

An npm firewall Artifacts, SBOMs and lifecycle More than one node SSO, roles and allow lists
Learn

Guides

Learn secure development Secure coding Secure pipelines Unsafe vs safe Security and development

Supply chain

Supply chain attacks, 2016 to 2026 Software supply chain security
Compare Side by side, all four ForgeRepo™ vs JFrog ForgeRepo™ vs Sonatype ForgeRepo™ vs Cloudsmith
Docs

Start

Getting started Download All documentation Questions

For developers

npm setup pip setup docker login Push a Docker image CI basics

For administrators

First setup Rules and their order Six incidents, walked through Backup and upgrade
Pricing Install it

Formats and running it

SSO, roles, IP allow lists and break glass

Permissions are checked on the server for every request. The portal hides buttons you cannot use, but that is tidiness, not the control.

Five roles

viewer reads rules, packages and vulnerabilities. developer adds asking for packages, walking trees and their own tokens. publisher can publish under reserved names with npm publish, twine upload, docker push or dotnet nuget push, usually a CI account. approver edits rules and decides requests and waivers. admin does everything, and is the only role that can even read settings, allow lists and keys. Admins can impersonate a user for support, recorded as admin as jsmith, for 30 minutes at most, and never to take over an account.

Single sign on

OpenID Connect with the authorization code flow and PKCE, against Okta, Entra ID, Google, Keycloak and the rest. The ID token signature is checked against the provider's published keys before a word of it is believed, and a replayed login finds its state already spent. SAML is not supported and not planned. If the provider is down in sso_only mode, enable_local_login.sh on the server puts the password form back, through the app's own code and into the audit trail.

Two allow lists

Whitelist Admin Portal decides which networks can reach the portal, and everybody else gets a flat 404. Whitelist Clients decides which networks can pull packages, can fetch GitHub's runner ranges itself, and can let a valid token through from anywhere. A break glass key, stored as a SHA-256 and shown once, gets you back in if your office address changes.

packages.example.com/_admin/
Users and roles. Every check is made by the server, not by the page.

In short

  • viewer, developer, publisher, approver and admin, enforced by the API
  • OIDC with PKCE, just in time accounts, no admin by SSO
  • Separate portal and client network allow lists
  • GitHub Actions ranges fetched daily, or a token as the way through
  • Break glass keys, rate limited and audited

In the documentation

Goes well with

  • Tokens, apps and environments Every download is tied to a token, an application and an environment. Rules can be scoped to them.
  • Audit trail Every sign in and every change, with before and after, who, from where, and whether it worked.
  • SIEM and email Signed webhooks, Splunk HEC and syslog in JSON or CEF. Digests instead of a mail per event.

One container, about two minutes

A Linux box with Docker, or one without it, and a reverse proxy for TLS. The installer does the rest and it is safe to run twice. Free, MIT licensed, nothing to sign up for.