Loading…

Upload Package

Drop an .rpm file — it will be GPG-signed, indexed and immediately available via DNF.

Drag & drop your .rpm here

or

📂 Repository Placement (auto-detected from RPM metadata if left blank)

Client Setup

Follow these steps to configure dnf to install packages from this registry.

1

Import the GPG Public Key

This allows DNF to verify package and metadata signatures.

Bash
sudo rpm --import http://localhost:8000/gpg/RPM-GPG-KEY
2

Add the Repository

Create a .repo file — or download the auto-generated one:

Bash
sudo curl -o /etc/yum.repos.d/rpm-registry.repo \
  "http://localhost:8000/api/repo-file?base_url=http://localhost:8000"

Or create it manually:

/etc/yum.repos.d/rpm-registry.repo
[rpm-registry]
name=RPM Registry
baseurl=http://localhost:8000/repo/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=http://localhost:8000/gpg/RPM-GPG-KEY
3

Install Packages

Bash
dnf install <package-name>
All code snippets above will update automatically.
GPG Key Fingerprint
Loading…

REST API Reference

Full OpenAPI spec available at /docs

Packages

GET /api/packages List & search packages. Supports q, arch, latest_only, page, per_page.
GET /api/packages/latest Return the latest version of every unique name+arch.
GET /api/packages/{name} All versions of a named package.
POST /api/packages/upload Upload an RPM (multipart/form-data). Signs & re-indexes automatically. Requires X-Api-Key if configured.
DEL /api/packages/{id} Delete a package by numeric ID.

GPG

GET /api/gpg/public-key Returns armored public key as JSON.
GET /gpg/RPM-GPG-KEY Raw public key (used in .repo file gpgkey= field).
POST /api/gpg/regenerate Regenerate GPG key pair. Invalidates all previous signatures.

Utility

GET /api/status Repository statistics and GPG key info.
GET /api/repo-file Returns a ready-to-use .repo file. Pass ?base_url=….
GET /repo/ Static RPM tree root. DNF baseurl points here.