Local Artifact Management


Overview

With the Desktop App running, you can:

  • Upload packages using standard publish commands
  • Download dependencies from Fly Registry
  • Use Fly as a proxy for public registries
  • Manage artifacts without manual configuration

Supported Package Managers

Fly supports all major package managers including npm, pip, docker, maven, go, nuget, and more.

See the complete list and their registry paths: Package Managers →


Two Ways to Work with Fly

With the Fly Desktop App installed and configured, you can work in two ways:

Option A: Using Terminal Commands

The Desktop App configures your local package managers to work with Fly automatically - just use your regular commands.

For Standard Package Managers:

Simply use your regular commands - they’re already connected to Fly:

Package ManagerClient ToolsUploadDownload
npmnpmnpm publishnpm install
pip (PyPI)pip, pipenv, twine, uvtwine uploadpip install
Maven (Java)Maven, Gradlemvn deploymvn install
GoGogo publishgo get
NuGetNuGet, dotnetdotnet nuget pushdotnet restore

For Docker:

Include your Fly subdomain in the image path:

docker push <your-fly-subdomain>.jfrog.io/docker/my-image:latest
docker pull <your-fly-subdomain>.jfrog.io/docker/my-image:latest

Option B: Using Your Agentic IDE

If your IDE has Fly MCP integrated, use natural language prompts:

For Standard Package Managers:

  • “Publish this npm package to Fly”
  • “Install the latest version of my-private-package”

For Docker (no subdomain needed in prompts):

  • “Push this Docker image to Fly”
  • “Pull my-app:latest from Fly”

Fly MCP automatically handles everything, including adding the Fly subdomain for Docker images.


How It Works

The Fly Desktop App works seamlessly in the background:

When you upload/publish:

  • Your packages always go to your private Fly Registry

When you download/install:

  • Uploaded artifacts (your private packages) come from your Fly Registry
  • Public dependencies (like npm’s express or pip’s requests) are proxied through Fly from public registries and cached

You don’t need to change any commands - Fly handles authentication and routing automatically.


Example Workflows

Node.js (npm)

Publish a Package

# Publish to Fly Registry (no additional configuration needed)
npm publish

The package is automatically uploaded to your private Fly Registry.

Install a Package

# Install from Fly Registry
npm install my-private-package

# Install public dependencies (proxied through Fly)
npm install express

Python (pip)

Publish a Package

# Build your package
python setup.py sdist bdist_wheel

# Upload using twine
twine upload dist/*

Install a Package

# Install from Fly Registry
pip install my-private-package

# Install public dependencies (proxied through Fly)
pip install requests

Docker

Push an Image

# Tag your image with Fly registry path
docker tag my-image:latest <your-fly-subdomain>.jfrog.io/docker/my-image:latest

# Push to Fly Registry
docker push <your-fly-subdomain>.jfrog.io/docker/my-image:latest

Pull an Image

# Pull from Fly Registry
docker pull <your-fly-subdomain>.jfrog.io/docker/my-image:latest

Java (Maven)

Deploy an Artifact

# Deploy to Fly Registry (configured via settings.xml)
mvn clean deploy

Download Dependencies

# Install dependencies from Fly Registry
mvn clean install

Manual Configuration

For runtime environments (Kubernetes), external systems, or environments without the Desktop App or GitHub Actions, configure package managers manually using access tokens and registry paths.

Configuration Steps

1. Generate an Access Token

Generate an access token in the Fly Web App to authenticate with the registry.

Create an access token →

2. Configure Your Package Manager

Use your Fly registry path with the generated token to configure your package manager.

Select your package manager for detailed configuration:

Each guide provides the specific configuration files and commands needed.


Viewing Your Artifacts

View all uploaded artifacts by navigating to Artifacts in the Fly Web App or search for them using Fly Chat.

Learn more in the Artifacts Section →


Next: Workflow Configuration →