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 Manager | Client Tools | Upload | Download |
|---|---|---|---|
| npm | npm | npm publish | npm install |
| pip (PyPI) | pip, pipenv, twine, uv | twine upload | pip install |
| Maven (Java) | Maven, Gradle | mvn deploy | mvn install |
| Go | Go | go publish | go get |
| NuGet | NuGet, dotnet | dotnet nuget push | dotnet 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:latestOption 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
expressor pip’srequests) 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 publishThe 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 expressPython (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 requestsDocker
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:latestPull an Image
# Pull from Fly Registry
docker pull <your-fly-subdomain>.jfrog.io/docker/my-image:latestJava (Maven)
Deploy an Artifact
# Deploy to Fly Registry (configured via settings.xml)
mvn clean deployDownload Dependencies
# Install dependencies from Fly Registry
mvn clean installManual 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.
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:
- Docker → -
<your-fly-subdomain>.jfrog.io/docker - npm → -
.npmrcconfiguration - pip (PyPI) → -
pip.confor environment variable - Maven (Java) → -
settings.xmlconfiguration - Go → -
GOPROXYenvironment variable - NuGet → -
dotnet nuget add source
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 →