Linux repositories for servers in Iran; current, secure, and accessible
Sanctions and access restrictions can interrupt package installation and updates on servers in Iran. FluxCDN provides an accessible route to original Linux and developer packages while keeping content, releases, and upstream signatures intact.
Original package with upstream signature verificationsudo apt update
Find the repository you need
Search for an operating system, database, or tool. Each result opens a complete guide without sending you to a raw repository URL.
Linux distributions
15Databases and messaging
7Development and CI/CD
13Infrastructure and networking
9Web, observability, and search
8No repository matched that name. Check the spelling and try again.
Docker packages and Docker images are different
Use the package repository to install Docker Engine. For public Docker Hub images, add the separate FluxCDN Registry Mirror to Docker.
Open the Docker Mirror guidedeb and rpm packages for Docker CE, CLI, Buildx, and Compose.
A mirror for pulling public Docker Hub images with normal docker pull commands.
Package management stays familiar
After selecting FluxCDN, installation and updates still use the standard tools already available on your system—without a custom client or a new workflow.
- Choose the distribution
Use the prepared command that matches your operating-system release.
- Keep verification intact
Preserve the original suite, architecture, components, and signing key.
- Install and update normally
Continue using the package-manager commands you already know.
Back up the current repository file before any change so returning to the previous configuration remains simple.
The download address changes; the trust chain does not
Only the repository base URL changes. Keep the release, suite, architecture, components, channel, and original signing key exactly as provided upstream.
- Original signing keyPackage authenticity remains verified by the project’s official key.
- Encrypted transportEvery public repository path is available over HTTPS.
- Public, read-only deliveryThe gateway serves downloads and does not accept public uploads.
Signed-ByOriginal key preserved
Before changing a repository
Short answers to the details that matter when using a repository mirror.
Do I need special software?
No. Use the standard package manager already available on your system and change only the repository address.
Should I disable GPG verification?
No. Keep the official signing key and GPG verification enabled. Disabling package authentication is not recommended.
Is the Debian security repository available?
Yes. debian-security is available as a separate path and is included with the main repository in the prepared Debian command.
How is the Docker CE repository different from Docker Registry?
Docker CE packages install Engine, CLI, Buildx, and Compose. The Registry Mirror is used to pull public Docker Hub images.
Can I upload packages?
No. Public paths are read-only and intended for package downloads.
How do I roll back?
Restore the backup created before the change, refresh package metadata, and verify the active source.
Choose your distribution and enable the repository now
Choose the exact distribution release, copy the prepared command, and continue managing packages with the same familiar tools.
52 repository paths
Public HTTPS access
Upstream signatures
Standard package managers
Original packages, current releases, verified signatures
Access restrictions should not force you to use an untrusted package source. FluxCDN keeps the original package and its upstream verification chain available to servers in Iran.
- Current releases and security updatesNew releases and security updates remain available through the repository path.
- No repackaging or content changesYou receive the package published by the upstream project without content modification.
- Upstream signature verificationYour standard package manager still verifies signatures, releases, and architecture.
Choose the distribution and release
Select the installed distribution and then its exact release to avoid mixing incompatible repository suites.
Ubuntu 24.04 and newer
The current deb822 file is backed up and the codename is read from the system.
sudo cp -a /etc/apt/sources.list.d/ubuntu.sources \
/etc/apt/sources.list.d/ubuntu.sources.backup.$(date +%F-%H%M%S)
. /etc/os-release
CODENAME="${UBUNTU_CODENAME:-$VERSION_CODENAME}"
sudo tee /etc/apt/sources.list.d/ubuntu.sources >/dev/null <<EOF
Types: deb
URIs: https://mirror.fluxcdn.cloud/ubuntu
Suites: ${CODENAME} ${CODENAME}-updates ${CODENAME}-backports ${CODENAME}-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
EOF
sudo apt updateUbuntu 22.04 LTS (Jammy)
Uses the sources.list layout for Jammy, including updates, security, and backports.
STAMP="$(date +%F-%H%M%S)"
sudo cp -a /etc/apt/sources.list "/etc/apt/sources.list.backup.$STAMP"
sudo tee /etc/apt/sources.list >/dev/null <<'EOF'
deb https://mirror.fluxcdn.cloud/ubuntu jammy main restricted universe multiverse
deb https://mirror.fluxcdn.cloud/ubuntu jammy-updates main restricted universe multiverse
deb https://mirror.fluxcdn.cloud/ubuntu jammy-backports main restricted universe multiverse
deb https://mirror.fluxcdn.cloud/ubuntu jammy-security main restricted universe multiverse
EOF
sudo apt updateDebian 13 (Trixie)
The main and security repositories retain Debian archive signing keys.
STAMP="$(date +%F-%H%M%S)"
sudo cp -a /etc/apt/sources.list.d "/etc/apt/sources.list.d.backup.$STAMP"
sudo tee /etc/apt/sources.list.d/debian.sources >/dev/null <<'EOF'
Types: deb
URIs: https://mirror.fluxcdn.cloud/debian
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: https://mirror.fluxcdn.cloud/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF
sudo apt updateDebian 12 (Bookworm)
The main and security repositories use the official Debian archive keyring.
STAMP="$(date +%F-%H%M%S)"
sudo cp -a /etc/apt/sources.list.d "/etc/apt/sources.list.d.backup.$STAMP"
sudo tee /etc/apt/sources.list.d/debian.sources >/dev/null <<'EOF'
Types: deb
URIs: https://mirror.fluxcdn.cloud/debian
Suites: bookworm bookworm-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: https://mirror.fluxcdn.cloud/debian-security
Suites: bookworm-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF
sudo apt updateKali Rolling
The kali-rolling suite and official components remain unchanged.
STAMP="$(date +%F-%H%M%S)"
sudo cp -a /etc/apt/sources.list.d/kali.sources \
"/etc/apt/sources.list.d/kali.sources.backup.$STAMP" 2>/dev/null || true
sudo tee /etc/apt/sources.list.d/kali.sources >/dev/null <<'EOF'
Types: deb
URIs: https://mirror.fluxcdn.cloud/kali
Suites: kali-rolling
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/kali-archive-keyring.gpg
EOF
sudo apt updateAlpine Linux 3.24
Check cat /etc/alpine-release first and change the release number when required.
STAMP="$(date +%F-%H%M%S)"
sudo cp -a /etc/apk/repositories "/etc/apk/repositories.backup.$STAMP"
sudo tee /etc/apk/repositories >/dev/null <<'EOF'
https://mirror.fluxcdn.cloud/alpine/v3.24/main
https://mirror.fluxcdn.cloud/alpine/v3.24/community
EOF
sudo apk update
sudo apk upgradeAlpine Linux 3.23
Configures the main and community repositories for Alpine 3.23.
STAMP="$(date +%F-%H%M%S)"
sudo cp -a /etc/apk/repositories "/etc/apk/repositories.backup.$STAMP"
sudo tee /etc/apk/repositories >/dev/null <<'EOF'
https://mirror.fluxcdn.cloud/alpine/v3.23/main
https://mirror.fluxcdn.cloud/alpine/v3.23/community
EOF
sudo apk update
sudo apk upgradeArch Linux
FluxCDN is placed first while existing mirrors remain available as fallbacks.
STAMP="$(date +%F-%H%M%S)"
sudo cp -a /etc/pacman.d/mirrorlist "/etc/pacman.d/mirrorlist.backup.$STAMP"
{
echo 'Server = https://mirror.fluxcdn.cloud/archlinux/$repo/os/$arch'
cat "/etc/pacman.d/mirrorlist.backup.$STAMP"
} | sudo tee /etc/pacman.d/mirrorlist >/dev/null
sudo pacman -SyuManjaro Stable
This example targets Stable. Keep the branch you intentionally use.
STAMP="$(date +%F-%H%M%S)"
sudo cp -a /etc/pacman.d/mirrorlist "/etc/pacman.d/mirrorlist.backup.$STAMP"
{
echo 'Server = https://mirror.fluxcdn.cloud/manjaro/stable/$repo/$arch'
cat "/etc/pacman.d/mirrorlist.backup.$STAMP"
} | sudo tee /etc/pacman.d/mirrorlist >/dev/null
sudo pacman -SyuopenSUSE Tumbleweed
This adds the OSS repository. Review existing Zypper sources before changing other paths.
sudo zypper lr -u
sudo zypper ar -f \
https://mirror.fluxcdn.cloud/opensuse/tumbleweed/repo/oss/ \
flux-tumbleweed-oss
sudo zypper refreshProxmox VE 9 on Debian 13
Adds pve-no-subscription and does not replace the base Debian repositories.
sudo tee /etc/apt/sources.list.d/proxmox.sources >/dev/null <<'EOF'
Types: deb
URIs: https://mirror.fluxcdn.cloud/proxmox/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
sudo apt updateProxmox VE 8 on Debian 12
Adds pve-no-subscription for Bookworm while keeping Debian base repositories separate.
sudo tee /etc/apt/sources.list.d/proxmox.sources >/dev/null <<'EOF'
Types: deb
URIs: https://mirror.fluxcdn.cloud/proxmox/pve
Suites: bookworm
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-release-bookworm.gpg
EOF
sudo apt updateapt-cache policy | grep -A3 mirror.fluxcdn.cloud