Proxmox Offline Mirror released!

In my environment, I must use a proxy as there's no direct internet connection.
This worked fine since the beginning of POM, but I have trouble after upgrading to Trixie.

To use a proxy, I set ALL_PROXY accordingly.
Running Bookworm, I added the Trixie repositories and ugpraded to Trixie from them.

Once upgraded and rebooted, when I try to create a new snapshot, POM doesn't contact the Proxy at all, but asks the local DNS to resolve debian.org or proxmox.com. Our local DNS can't resolve public records.

Has anybody noticed a similar behaviour? Any hints?

Code:
root@OfflineMirrorTest:~# env | grep -i proxy
ALL_PROXY=http://192.168.1.38:3128
root@OfflineMirrorTest:~# dpkg -l | grep proxmox
ii  proxmox-archive-keyring         4.0                                  all          Proxmox APT archive keyring
ii  proxmox-offline-mirror          0.7.2                                amd64        Proxmox offline repository mirror and subscription key manager
ii  proxmox-offline-mirror-docs     0.7.2                                all          Proxmox offline repository mirror and subscription key manager
root@OfflineMirrorTest:~# proxmox-offline-mirror mirror snapshot create debian-trixie-security
Fetching Release/Release.gpg files
-> GET 'http://deb.debian.org/debian-security/dists/trixie-security/Release.gpg'..
Release.gpg fetch failure: io: failed to lookup address information: Name or service not known
Fetching InRelease file
-> GET 'http://deb.debian.org/debian-security/dists/trixie-security/InRelease'..
InRelease fetch failure: io: failed to lookup address information: Name or service not known
Error: Neither Release(.gpg) nor InRelease available!
root@OfflineMirrorTest:~#


Thank you very much in advance!
 
Last edited:
Hello,
I need to add the Webmin repository to POM.
Unfortunately, when parsing the Release file, POM reports an error: 'Architectures' field missing.
Code:
Fetching Release/Release.gpg files
-> GET 'http://download.webmin.com/download/newkey/repository/dists/stable/Release.gpg'..
-> GET 'http://download.webmin.com/download/newkey/repository/dists/stable/Release'..
Verifying 'Release(.gpg)' signature using provided repository key..
Success
Parsing Release..
Error: 'Architectures' field missing.

In the Release file downloaded from the Webmin repository, there is an 'Architecture' field instead of the 'Architectures' field.
Code:
Archive: stable
Version: 3.1
Component: contrib
Origin: Jamie Cameron
Label: Webmin
Architecture: all i386 amd64 arm
Description: Webmin and related packages
Date: Sun, 05 Oct 2025 18:16:48 UTC

Is there any way to work around this?
 
technically that is a broken repository, but the field is also allowed to be missing, so please file a bug in our bugzilla!
 
Hello all,

I am trying to activate my Subscriptions on the clients (PVEs) using the following command.

proxmox-offline-mirror-helper offline-key --source http://proxmox-offline-mirror.domain.example/

I get the error:
Error: parameter verification failed - 'source': schema does not allow additional properties.
Usage: proxmox-offline-mirror-helper offline-key --mountpoint <string> [OPTIONS]

Is it no longer possible to activate a server using http?

I am brand new on Proxmox. It is my first installation. The POM is accessible via http. Subscriptions are active. The POM is a native Debian 13.

Thanks
Bernd
 
you need proxmox-offline-mirror-helper >= 0.7.3 for that..
 
Hello,
unfortunetly somethin more.
1773730315828.png

The subscriptions are active. I didn't find the .mirror-state file. Is it placd somewhere else?
 
did you set up this path as *medium* and synced it? it looks like it might just be where you store your snapshots?
 
That is just the place where the snapshots are stored. I "only" followed the guided proxmox-offline-mirror setup. You are right I have to create a media, Point 2 in the guided setup.
 
  • Like
Reactions: fabian
Nothing out of the box currently. Simplest thing might be to mirror the existing local Debian mirror with POM, while you would tak up double the space temporarily, you at least won't need to redownload the whole date.

One could also check in the data into a .pool/ like POM uses, which roughly boils down to creating hardlinks to the .deb files with the sha256sum of each such debfile as the hardlink name inside a .pool/sha256/ directory.

But depends a bit on your use case and how your current local mirror is setup and its internals work and how much time your willing to spent with experimenting here.
 
Hello all,
I refer to "proxmox-offline-mirror mirror snapshot remove" is there an option for removing all snapshots except the last one? I think I have to write a script to do so.
Thanks
Bernd
 
no, there isn't. but keep in mind that almost all repositories are append-only, so each snapshot only takes the space for modified indices + added packages.
 
  • Like
Reactions: Johannes S
Probably a dumb question but are any of the packages containing dbgsym in the pve/pbs/pdm repos needed? I'd assume they aren't, as they're debug packages and only get installed if needed.

Attempting to slim down as much as possible on a repo capture
 
dbgsym packages are not a hard requirement for anything, they are mainly used for debugging an issues, where one needs the full debug info to, for example, get complete and readable backtraces.

In fact, we plan to move out dbgsym packages from our main CDN to a secondary one in the future, as they indeed use quite a bit of space (and mirror traffic) on the CDN while only being relevant in edge cases (but can become essential then, so just not uploading isn't an option).
 
  • Like
Reactions: ns33
Hi all,

FYI: Proxmox Offline Mirror 0.8.0 is now available on the pve-test repository at the time of writing. It includes a bigger set of features and improvements that accumulated over the course of this year: new ways to manage snapshots, faster and leaner snapshot creation, and more robust handling of damaged or inconsistent data.

Highlights:
  • Snapshot aliases: by default, each mirror maintains a last symlink to its most recent snapshot, a stable path for APT entries and scripts (#4379). Use mirror snapshot name or mirror snapshot create --name to give a snapshot a persistent name. These aliases exist only on the mirroring host, not on synced media.
  • Pruning: remove old snapshots through mirror snapshot prune and prune-all with the retention options known from Proxmox Backup Server, such as --keep-last, --keep-daily, and --keep-weekly (#5863). Named snapshots are protected from pruning by default, and the snapshot the latest symlink points to is always kept.
  • Verification: the new size verify mode compares reused files with the sizes from the repository index. Unlike the full mode, which reads every file on each run, this catches truncated files at little cost. Snapshot creation now downloads files that fail its checks again, which also repairs older snapshots sharing them, instead of failing until the damaged file is removed by hand. The new mirror verify command checks stored files on demand and reports damage without repairing it.
  • Package-level diff: mirror snapshot diff --packages lists the binary and source packages that were added, removed, or changed between two snapshots.
  • JSON output with --output-format json for snapshot listing, removal, pruning, garbage collection, verification, and diffs.
  • Parallel downloads: with --max-downloads 4, up to four binary packages are downloaded in parallel, which speeds up snapshot creation especially for the first snapshot of a big repository. The default remains one download at a time.
  • Lower memory use: downloads are now written to disk as they arrive, and stored files are verified and copied to media in pieces, instead of being held in memory as a whole. Memory use therefore no longer grows with the size of the largest package, which in Debian can exceed 1 GiB, for example for game data or debug symbol packages.
  • Robustness: stalled downloads now time out instead of blocking snapshot creation forever (see the request-timeout mirror option), downloads are checked against every checksum the repository provides, repository paths can no longer lead outside the mirror directory, and the next successful snapshot creation removes the leftovers of interrupted ones.
  • The setup wizard now offers the Proxmox Datacenter Manager repositories (#7762).

Please note the following when upgrading:
  • The JSON output of mirror snapshot list changed from a map of mirror IDs to a mirrors array, so scripts reading it need an update. We try to avoid such changes, but while the version is 0.x, the output format is not guaranteed to stay stable.
  • The verify option of mirrors and media is now called verify-mode. The old name is still accepted and existing configurations keep their behavior, but configuration listings show verify-mode, and older versions cannot read a configuration written by 0.8.0. On the command line, replace a bare --verify with --verify true or --verify-mode full.
  • A file or directory named last in a mirror directory prevents snapshot creation until you remove it, configure another latest-symlink-name, or disable the symlink for that mirror with --latest-symlink false. An existing symlink of that name is taken over.
  • Operations on the same mirror no longer run at the same time, which, for example, keeps two snapshot creations started in the same second from writing into the same directory. Schedule snapshot operations, medium syncs, mirror removal, and changes to a mirror's base directory or latest-symlink settings so they do not overlap for the same mirror. A conflicting operation waits up to five seconds, then fails if the mirror is still busy.

The package changelog lists all changes in more detail. FYI: We will updated the hosted docs on https://pom.proxmox.com once this version gets moved to no-subscription to avoid to much confusion here, you can always check the shipped one in /usr/share/doc/proxmox-offline-mirror on your system though.

As always, we appreciate your feedback!