All paths below are browseable directory listings. Every snippet adds this mirror as an extra source and tells your package manager to prefer it — none of them edit the repo files your distribution ships. That means an apt upgrade or dnf update will never revert your mirror configuration.
Available mirrors
/ubuntu/ — Ubuntu archive
# Drop a NEW source file — your stock ubuntu.sources stays untouched:
# /etc/apt/sources.list.d/getgeek-ubuntu.sources (deb822)
Types: deb
URIs: https://mirror.getgeek.se/ubuntu
Suites: noble noble-updates noble-backports noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Then prefer it over archive.ubuntu.com with the apt pin in Prefer this mirror below.
/debian/ — Debian archive
# Drop a NEW source file — your stock debian.sources stays untouched:
# /etc/apt/sources.list.d/getgeek-debian.sources (deb822)
Types: deb
URIs: https://mirror.getgeek.se/debian
Suites: bookworm bookworm-updates bookworm-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# Security updates — separate archive, also mirrored here:
Types: deb
URIs: https://mirror.getgeek.se/debian-security
Suites: bookworm-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Then prefer it over upstream with the apt pin in Prefer this mirror below.
/almalinux/ — AlmaLinux
# Drop a NEW repo file — your stock almalinux*.repo files stay untouched.
# priority=10 (lower wins; stock repos default to 99) makes dnf prefer this mirror.
sudo tee /etc/yum.repos.d/getgeek-almalinux.repo >/dev/null <<'EOF'
[getgeek-baseos]
name=GetGeek mirror - AlmaLinux $releasever - BaseOS
baseurl=https://mirror.getgeek.se/almalinux/$releasever/BaseOS/$basearch/os/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-$releasever
priority=10
enabled=1
[getgeek-appstream]
name=GetGeek mirror - AlmaLinux $releasever - AppStream
baseurl=https://mirror.getgeek.se/almalinux/$releasever/AppStream/$basearch/os/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-$releasever
priority=10
enabled=1
[getgeek-extras]
name=GetGeek mirror - AlmaLinux $releasever - extras
baseurl=https://mirror.getgeek.se/almalinux/$releasever/extras/$basearch/os/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-$releasever
priority=10
enabled=1
EOF
sudo dnf clean all && sudo dnf makecache
Verify the mirror is preferred with dnf repoinfo getgeek-baseos. The GPG key ships with AlmaLinux, so no key import is needed.
/rocky-linux/ (alias /rocky/) — Rocky Linux
# Drop a NEW repo file — your stock rocky*.repo files stay untouched.
# priority=10 (lower wins; stock repos default to 99) makes dnf prefer this mirror.
sudo tee /etc/yum.repos.d/getgeek-rocky.repo >/dev/null <<'EOF'
[getgeek-baseos]
name=GetGeek mirror - Rocky $releasever - BaseOS
baseurl=https://mirror.getgeek.se/rocky-linux/$releasever/BaseOS/$basearch/os/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-$releasever
priority=10
enabled=1
[getgeek-appstream]
name=GetGeek mirror - Rocky $releasever - AppStream
baseurl=https://mirror.getgeek.se/rocky-linux/$releasever/AppStream/$basearch/os/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-$releasever
priority=10
enabled=1
[getgeek-extras]
name=GetGeek mirror - Rocky $releasever - extras
baseurl=https://mirror.getgeek.se/rocky-linux/$releasever/extras/$basearch/os/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-$releasever
priority=10
enabled=1
EOF
sudo dnf clean all && sudo dnf makecache
Verify the mirror is preferred with dnf repoinfo getgeek-baseos. The GPG key ships with Rocky, so no key import is needed.
/epel/ — EPEL (Extra Packages for Enterprise Linux)
# Drop a NEW repo file — independent of the epel-release package.
# The GPG key is served by this mirror, so no epel-release install is required.
sudo tee /etc/yum.repos.d/getgeek-epel.repo >/dev/null <<'EOF'
[getgeek-epel]
name=GetGeek mirror - EPEL $releasever
baseurl=https://mirror.getgeek.se/epel/$releasever/Everything/$basearch/
gpgcheck=1
gpgkey=https://mirror.getgeek.se/epel/RPM-GPG-KEY-EPEL-$releasever
priority=10
enabled=1
EOF
sudo dnf clean all && sudo dnf makecache
EPEL 10 is not mirrored yet — only EL8 and EL9 are synced. On EL10 keep the upstream EPEL repo for now; this drop-in's $releasever baseurl will start working automatically once EPEL 10 is added.
/docker-ce/ — Docker CE packages
# Debian / Ubuntu — install the key, then drop a NEW source file:
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://mirror.getgeek.se/docker-ce/linux/debian/gpg \
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Replace "debian" with "ubuntu" in the URIs below on Ubuntu systems.
sudo tee /etc/apt/sources.list.d/getgeek-docker.sources >/dev/null <<EOF
Types: deb
URIs: https://mirror.getgeek.se/docker-ce/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
# RHEL / Rocky / AlmaLinux / Fedora — drop a NEW repo file (priority-preferred):
sudo tee /etc/yum.repos.d/getgeek-docker.repo >/dev/null <<'EOF'
[getgeek-docker-ce-stable]
name=GetGeek mirror - Docker CE Stable
baseurl=https://mirror.getgeek.se/docker-ce/linux/centos/$releasever/$basearch/stable
gpgcheck=1
gpgkey=https://mirror.getgeek.se/docker-ce/linux/centos/gpg
priority=10
enabled=1
EOF
sudo dnf clean all && sudo dnf makecache
The apt heredoc is unquoted on purpose so $(...) and $VERSION_CODENAME expand into the file; the dnf one is quoted so $releasever is written literally for dnf to resolve.
/proxmox/ — Proxmox VE / PBS / PMG
# Proxmox VE 8 (Debian bookworm) — install key with signed-by (not trusted.gpg.d):
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL http://mirror.getgeek.se/proxmox/debian/proxmox-release-bookworm.gpg \
-o /etc/apt/keyrings/proxmox-release-bookworm.gpg
# Drop a NEW source file — no-subscription repo (omit pve-enterprise unless subscribed):
echo "deb [signed-by=/etc/apt/keyrings/proxmox-release-bookworm.gpg] \
http://mirror.getgeek.se/proxmox/debian/pve bookworm pve-no-subscription" | \
sudo tee /etc/apt/sources.list.d/getgeek-pve.list
# Optional Ceph (PVE 8 uses ceph-squid or ceph-reef):
echo "deb [signed-by=/etc/apt/keyrings/proxmox-release-bookworm.gpg] \
http://mirror.getgeek.se/proxmox/debian/ceph-squid bookworm no-subscription" | \
sudo tee /etc/apt/sources.list.d/getgeek-ceph.list
HTTP only — see the note below on the upstream certificate. Release files are GPG-signed, so integrity is unaffected.
/cloud-images/ — Ubuntu cloud images
# Pull the latest Noble (24.04) cloud image for Proxmox / libvirt:
wget https://mirror.getgeek.se/cloud-images/noble/current/noble-server-cloudimg-amd64.img
# Released build artefacts (SHA256SUMS etc.) are under /releases/:
# https://mirror.getgeek.se/cloud-images/releases/noble/
/fedora/ — Fedora Linux (releases + updates)
# Drop a NEW repo file — your stock fedora*.repo files stay untouched.
sudo tee /etc/yum.repos.d/getgeek-fedora.repo >/dev/null <<'EOF'
[getgeek-fedora]
name=GetGeek mirror - Fedora $releasever
baseurl=https://mirror.getgeek.se/fedora/linux/releases/$releasever/Everything/$basearch/os/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
priority=10
enabled=1
[getgeek-fedora-updates]
name=GetGeek mirror - Fedora $releasever - updates
baseurl=https://mirror.getgeek.se/fedora/linux/updates/$releasever/Everything/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
priority=10
enabled=1
EOF
sudo dnf clean all && sudo dnf makecache
# Anaconda / kickstart install (e.g. a Packer build):
# url --url="https://mirror.getgeek.se/fedora/linux/releases/44/Server/x86_64/os/"
Prefer this mirror over upstream
The snippets above only add the mirror. These last steps make the package manager actually prefer it — without touching any file your distribution ships.
apt (Debian / Ubuntu)
cat <<'EOF' | sudo tee /etc/apt/preferences.d/99-getgeek-mirror
Package: *
Pin: origin mirror.getgeek.se
Pin-Priority: 990
EOF
Default origin priority is 500; 990 means our mirror wins for any package it provides. This is a separate drop-in file — nothing in your stock sources is modified. Verify with apt-cache policy.
dnf (RHEL / Rocky / Alma / Fedora)
Nothing to do — the drop-in .repo files above already set priority=10. dnf honours priority natively (lower number wins; stock repos stay at the default 99), so the mirror is preferred automatically with no edits to distro-owned files. Verify with dnf repoinfo getgeek-* or dnf -v repolist.
Notes
- None of these instructions modify the repo files your distribution ships. They add a separate
getgeek-*.repo/getgeek-*.sourcesand prefer it — anapt upgrade/dnf updatewill not revert anything. - All mirrors are served over HTTPS (except
/proxmox/, which is HTTP only because the upstream CDN presents a certificate whose SAN does not includedownload.proxmox.com; Release files are GPG-signed so integrity is unaffected). - Scope is intentionally limited to current, supported distro releases — EOL codenames and non-Linux installers are not mirrored.
- Debian security is a separate upstream archive, so it's served from
/debian-security/rather than under/debian/. Both are mirrored here. - EPEL is currently mirrored for EL8 and EL9 only; EPEL 10 is not synced yet.
- Report issues: john@getgeek.se