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
Free and open source MIT licensed Eleven package formats Self hosted

Every package your code pulls, checked at the door.

A free, self hosted proxy between your builds and the public registries. Malicious, typosquatted and vulnerable packages are stopped before they reach a laptop or a pipeline, and you always know who pulled what.

$0per seat, per node, per year, forever
96sfrom a bare server to a running registry, measured
1container: the app, its database and the cache
97documentation topics, with real screenshots
root@registry-01: ~
Install, start to finish 0:00 / 0:00

Replay of a real run of setup.sh on a clean Ubuntu 24.04 server. Long waits are shortened and marked, and the password and key are masked.

Your tools do not change. Point them at one address. Developers, pipelines and build servers ask ForgeRepo™. ForgeRepo™ asks the public registries, checks what comes back, and passes on only what your rules allow.

Developers

Laptops and IDEs, with the package managers they already use

  • npm
  • pnpm
  • Yarn
  • Bun
  • uv
  • Poetry
  • .NET
  • Gradle
  • Composer
  • SwiftPM

CI/CD pipelines

Every build installs through the same checks

  • GitHub Actions
  • GitLab CI
  • Jenkins

Build servers and clusters

Image pulls, and dnf and apt on the hosts

  • Docker
  • Podman
  • Kubernetes
  • Red Hat
  • Debian
  • Ubuntu
ForgeRepo™Proxy, cache and firewall
  • Allowed: fetched once, cached, served
  • Malware and known malicious
  • Typosquats and lookalikes
  • Dependency confusion
  • Releases too new to trust
  • Vulnerable or wrong license

Records who pulled what

Public registries

  • npm registry
  • PyPI
  • Docker Hub, GHCR, Quay
  • nuget.org
  • Maven Central
  • RubyGems.org
  • Packagist

Linux repositories

  • Red Hat, AlmaLinux, Rocky
  • Debian
  • Ubuntu

What it does

One address for every package and image, checked before it is served

npm, pip, docker, dotnet, Maven, Bundler, Composer, CocoaPods, SwiftPM, dnf and apt ask ForgeRepo™ instead of the internet. It checks the request against your rules, fetches it if it is allowed, keeps a copy, and hands it back. Anything refused says why, and opens a request an approver can say yes to in one click.

Your toolnpm, pip, dockerForgeRepo™packages.example.comAllowed by therules?403 and the reasonFetched from npmjs,PyPI or Docker Hub,then checkedServed to youtokennoyes
Every install goes through the same checks, from a laptop or a pipeline.

Hijacked releases

A maintainer account is stolen, a poisoned version goes up, and every build that floats to it installs it within hours. Cooling off and the kill switch stop it.

Typosquats

reqeusts, lodahs, python-numpy. One typo and the package that installs is not the one anybody meant. Lookalike names are caught.

Dependency confusion

Somebody publishes your internal name on the public registry at a higher version. Reserved names are never fetched from outside.

Pick your path

Start where your job starts

Developers

One line of config, and installs work exactly as they did, lockfiles included.

Security teams

Block before download, kill a bad release for everyone, and see who pulled it.

Platform and DevOps

One container, about two minutes, and every pipeline pulls through it.

Evaluating

What it does well, what it will not do, and the source to check both.

An honest comparison

We score ourselves third out of four

33 capabilities against JFrog, Sonatype and Cloudsmith, each scored on the best thing they sell. Sixteen rows go against us, and every one says why. We come first in two sections: When something goes wrong and Developers and approvals.

#1

137

JFrog
self hosted from $27,000 a year

#2

134

Sonatype
Firewall priced on request

#3

127

ForgeRepo™
this project, and it is free

#4

100

Cloudsmith
SaaS only, policies on Ultra

Two minutes from a bare server

Copy one script, run it, and it installs Docker if it is missing, builds the image, starts the registry and prints how to sign in. Safe to run twice. Free, MIT licensed, nothing to sign up for.