Mirror status

Find a file

Every package and image on every mirror node, with its size, a download link per node and ✅ when its checksum was verified.

Try: * any characters · ? one character · plain text = anywhere in the path

mirrors.oiv.ae is a public package mirror hosted in the UAE, serving the GCC region over HTTPS for package managers and over rsync for downstream mirrors, plain or over TLS. Updates come from a server in the region instead of Europe or the US, so downloads start sooner and finish faster.

Below is the synchronisation status of every mirrored repository, reported by the mirror node itself. Times are shown in your local time zone. The page refreshes every minute.

In a terminal? curl -s https://mirrors.oiv.ae/status.txt prints the same status as plain text, and curl -s 'https://mirrors.oiv.ae/status.txt?project=debian' prints the steps to paste into your configuration.

In sync–
Syncing now–rsync running
Out of date–past freshness limit
Mirrored data–
Disk used–

What the states mean

In sync
Last successful sync is within the repository's freshness limit.
Syncing
A sync with the upstream is running right now; the published files switch over atomically at its end.
Warning
Still fresh, but the most recent attempt did not complete (it is retried on the next run).
Out of date
No successful sync within the freshness limit. Package managers verify signatures, but you may get older packages.
Pending
Newly added; the first full download has not finished yet.

Nodes and projects

The mirror service runs on 2 nodes. The table shows which project is mirrored on which node (✓). A node is offline while it is not attached to the service yet or does not answer. Your browser checks the other nodes by reading their public /status.json.

Project auh1mir1 offline not attached yet dxb2mir1 online this node
debianDebian archive and security updates ✓ offline ✓
opensuseopenSUSE Leap / Tumbleweed repositories ✓ offline ✓
opnsenseOPNsense firewall packages and installer images ✓ offline ✓
proxmoxProxmox VE packages and ISOs ✓ offline ✓

Bandwidth by time of day

The mirror shares its internet link with other users. Serving clients always has priority; the speed of the link is shared out by time of day. This node (dxb2mir1) is in: –

auh1mir1 (times in Asia/Dubai)

PeriodWhenServing clients (upload)Mirror syncs from upstream (download)
Business hoursserving only Mon–Fri 08:30–17:00 up to 100 Mbit/s all together no syncs run
Shoulderbetween business hours and the night all other times (weekends: the whole day outside the night) up to 200 Mbit/s all together up to 300 Mbit/s
Nightno limits every day 22:00–06:00 no limit no limit; also the time for speed tests of upstream mirrors

dxb2mir1 (times in Asia/Dubai)

PeriodWhenServing clients (upload)Mirror syncs from upstream (download)
Business hoursserving only Mon–Fri 08:30–17:00 up to 100 Mbit/s all together no syncs run
Shoulderbetween business hours and the night all other times (weekends: the whole day outside the night) up to 200 Mbit/s all together up to 300 Mbit/s
Nightno limits every day 22:00–06:00 no limit no limit; also the time for speed tests of upstream mirrors

Downloads from this mirror are never refused because of the time of day; the limits only share the link. Downstream mirrors are asked to sync outside business hours, best at night.

Use the mirror

Every project has its own host name and keeps the upstream folder layout and architecture names. To switch a system to the mirror, change only the host name in its repository address; the path stays exactly as it is upstream. HTTPS and plain HTTP both work.

ProjectMirror addressrsync (downstream mirrors)
debianDebian archive and security updates https://debian.mirrors.oiv.ae/ rsync://debian.mirrors.oiv.ae/debian/plain (rsync, port 873) or TLS (rsync-ssl, port 874)
opensuseopenSUSE Leap / Tumbleweed repositories https://opensuse.mirrors.oiv.ae/ rsync://opensuse.mirrors.oiv.ae/opensuse/plain (rsync, port 873) or TLS (rsync-ssl, port 874)
opnsenseOPNsense firewall packages and installer images https://opnsense.mirrors.oiv.ae/ rsync://opnsense.mirrors.oiv.ae/opnsense/plain (rsync, port 873) or TLS (rsync-ssl, port 874)
proxmoxProxmox VE packages and ISOs https://proxmox.mirrors.oiv.ae/ rsync://proxmox.mirrors.oiv.ae/proxmox/plain (rsync, port 873) or TLS (rsync-ssl, port 874)

Only the repositories listed above are mirrored; other paths return “not found”. In scripts and configuration management, keep the host name in one variable and the upstream path unchanged. Trust the original keys, not the mirror: every project below links, in bold, to the project's own page with its key and fingerprint, and shows how to check the signed files you download from here yourself. This node checks every file the same way: the verified files and their checksums.

openSUSE (zypper)

Add the mirror with a higher priority (a lower number) than the defaults; zypper then downloads from here and keeps the original repositories as a fallback. $releasever keeps the repository on your Leap version after an upgrade; keep the single quotes.

sudo zypper ar -f -p 90 'https://opensuse.mirrors.oiv.ae/distribution/leap/$releasever/repo/oss/' oiv-leap-oss
sudo zypper ar -f -p 90 'https://opensuse.mirrors.oiv.ae/distribution/leap/$releasever/repo/non-oss/' oiv-leap-non-oss
sudo zypper ref

On Leap 16, updates and security fixes are published into repo/oss and repo/non-oss; there is no separate update repository.

Check and undo

The oiv- repositories should be listed with priority 90. To undo, remove them.

zypper lr -uP
sudo zypper rr oiv-leap-oss oiv-leap-non-oss

Verify the signature yourself

zypper checks the repository metadata with the openSUSE Project Signing Key, which is already on your system (package openSUSE-build-key). Do not take the key from this mirror: the original is at download.opensuse.org/…/repomd.xml.key; its fingerprint and validity are published by openSUSE on openSUSE: Signing Keys.

curl -fsSO https://download.opensuse.org/distribution/leap/16.1/repo/oss/repodata/repomd.xml.key
gpg --show-keys --with-fingerprint repomd.xml.key       # compare with openSUSE: Signing Keys
gpg --import repomd.xml.key
curl -fsSO https://opensuse.mirrors.oiv.ae/distribution/leap/16.1/repo/oss/repodata/repomd.xml
curl -fsSO https://opensuse.mirrors.oiv.ae/distribution/leap/16.1/repo/oss/repodata/repomd.xml.asc
gpg --verify repomd.xml.asc repomd.xml                  # Good signature from "openSUSE Project Signing Key"
OPNsense (firmware and packages)
  1. Sign in to the OPNsense web interface.
  2. Go to System ▸ Firmware ▸ Settings.
  3. In Mirror, choose (custom) and enter the mirror address, without a path (OPNsense adds the ABI and release itself):
    https://opnsense.mirrors.oiv.ae
  4. Select Save, then go to Status and select Check for updates.

To undo, set Mirror back to (default) and save.

Verify downloaded images yourself

OPNsense signs its images and checksum files with an RSA key per release series. Take the public key from the original site, not from this mirror: pkg.opnsense.org/releases/26.1/OPNsense-26.1.pub (the key of the newest series is also printed in pkg.opnsense.org/releases/mirror/README). OPNsense describes the check in its installation guide; it publishes no key fingerprint, so compare the key with the copies on opnsense.org, the OPNsense forum and the project's GitHub.

curl -fsSO https://pkg.opnsense.org/releases/26.1/OPNsense-26.1.pub
curl -fsSO https://opnsense.mirrors.oiv.ae/releases/26.1/OPNsense-26.1.6-checksums-amd64.sha256
curl -fsSO https://opnsense.mirrors.oiv.ae/releases/26.1/OPNsense-26.1.6-checksums-amd64.sha256.sig
openssl base64 -d -in OPNsense-26.1.6-checksums-amd64.sha256.sig -out checksums.sig
openssl dgst -sha256 -verify OPNsense-26.1.pub -signature checksums.sig OPNsense-26.1.6-checksums-amd64.sha256   # Verified OK
openssl sha256 OPNsense-26.1.6-dvd-amd64.iso.bz2        # compare with the line in the checksum file
Debian

apt checks the archives with the Debian archive keys from the package debian-archive-keyring. The originals and their fingerprints are on Debian's own page ftp-master.debian.org/keys.html (the Debian 13 archive key and the Debian 13 security key).

Installation images, same layout as cdimage.debian.org (current release; see the list above for the image sets): https://debian.mirrors.oiv.ae/debian-cd/

Verify the images yourself

Debian signs the checksum files (SHA512SUMS.sign, SHA256SUMS.sign) with the Debian CD signing key. Get the key from Debian, not from this mirror, and compare its fingerprint with the one Debian publishes on debian.org/CD/verify (key server of the Debian project: keyring.debian.org).

curl -fsS 'https://keyring.debian.org/pks/lookup?op=get&search=debian-cd@lists.debian.org' | gpg --import
gpg --fingerprint debian-cd@lists.debian.org                    # compare with debian.org/CD/verify
curl -fsSO https://debian.mirrors.oiv.ae/debian-cd/current/amd64/iso-dvd/SHA512SUMS
curl -fsSO https://debian.mirrors.oiv.ae/debian-cd/current/amd64/iso-dvd/SHA512SUMS.sign
gpg --verify SHA512SUMS.sign SHA512SUMS                         # Good signature from "Debian CD signing key"
sha512sum -c --ignore-missing SHA512SUMS                        # after downloading the image
Proxmox VE

Proxmox VE 9 without a paid subscription (the case for this mirror: it carries the pve-no-subscription and pve-test repositories, not the enterprise one). Two changes, then apt update:

  1. Switch the enterprise repository off. A new installation enables it, and without a subscription key it only produces errors. In /etc/apt/sources.list.d/pve-enterprise.sources add the line Enabled: no (if ceph.sources uses the enterprise repository, do the same there). In the web interface: Node → Updates → Repositories, select the entry, Disable.
  2. Point the no-subscription repository to this mirror, in /etc/apt/sources.list.d/proxmox.sources: replace the host name only.
Types: deb
URIs: https://proxmox.mirrors.oiv.ae/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg

If the host still has the older one-line file /etc/apt/sources.list.d/pve-no-subscription.list, take it out of sources.list.d (keep a copy elsewhere) once proxmox.sources is in place, or disable the entry in the web interface: the same repository twice makes apt print warnings. The Debian base of the host stays as it is (see Debian below), and so do the Ceph repositories. Proxmox describes the no-subscription repository as meant for testing and non-production use. The “No valid subscription” notice of the web interface is Proxmox's own and stays. To undo, put back download.proxmox.com.

Verify the signature yourself

apt checks the repository with the Proxmox release key from your host (proxmox-archive-keyring). The original keyring is on Proxmox's own server, not on this mirror: proxmox-archive-keyring-trixie.gpg; its checksum is published by Proxmox on Proxmox's Package Repositories page. It holds the Proxmox Trixie Release Key and the Proxmox Bookworm Release Key.

apt install gpgv                                                # once: the check needs gpgv
curl -fsSO https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg
sha256sum proxmox-archive-keyring-trixie.gpg                    # compare with Proxmox's page
curl -fsSO https://proxmox.mirrors.oiv.ae/debian/pve/dists/trixie/InRelease
gpgv --keyring ./proxmox-archive-keyring-trixie.gpg InRelease   # Good signature from "Proxmox Trixie Release Key"

Installation images, same layout as download.proxmox.com: https://proxmox.mirrors.oiv.ae/iso/

Release signing keys: https://proxmox.mirrors.oiv.ae/debian/ (e.g. proxmox-release-bookworm.gpg; a Proxmox VE 9 host already has its keyring from the package proxmox-archive-keyring); verify them against Proxmox's Package Repositories page.

Run a downstream mirror with rsync (plain or TLS)

Downstream mirrors are welcome. Copy a project to your own server, for a campus, office or ISP network. Use the project's host name; the rsync module is the project name.

rsync -avH --delete --delay-updates \
  rsync://opensuse.mirrors.oiv.ae/opensuse/ /srv/mirror/opensuse/
  • -H keeps hard links, which the openSUSE tree uses heavily.
  • --delete removes files that were removed upstream.
  • --delay-updates puts updated files in place at the end, so clients never see a half-synced repository.

Over TLS (port 874): the same modules, and your mirror can check that it talks to this server. rsync-ssl comes with rsync and verifies our certificate against the system CA store and the host name in the URL:

rsync-ssl -avH --delete --delay-updates \
  rsync://opensuse.mirrors.oiv.ae/opensuse/ /srv/mirror/opensuse/

Use the host name, never an IP address. Leave RSYNC_SSL_CA_CERT unset and never set RSYNC_SSL_CA_CERT= (empty), RSYNC_SSL_SKIP_HOSTNAME_CHECK=1 or RSYNC_SSL_ALLOW_INSECURE_*: each one turns the check off. If TLS fails, do not fall back to plain rsync without noticing.

Schedule it with a systemd timer. Sync at most every 4 hours, never in our business hours (Mon–Fri 08:30–17:00 Asia/Dubai), preferably at night (22:00–06:00), and add a random delay. Check your disk space against the size of the tree first, and tell us your mirror's address so we can plan capacity.

# /etc/systemd/system/mirror-downstream.timer
[Timer]
OnCalendar=*-*-* 22,02:17:00 Asia/Dubai
RandomizedDelaySec=15m
Persistent=true

[Install]
WantedBy=timers.target

Acceptable use

The mirror is free and open to everyone. A few rules keep it fast for all users.

Get involved

Which projects come next is decided with the people who use them. To suggest one, send the project name, its upstream rsync source, its approximate size, who uses it and whether you can help maintain it to mirror-admin@oiv.ae. Offers of bandwidth, storage or a hosting node in a GCC country are welcome too.