Mirrors | AlmaLinux Wiki
About
Release Notes
ALESCo
Contribute
Help AlmaLinux OS
AlmaLinux Build System
Documentation
Mirrors
Packaging
Testing
Help translating AlmaLinux.org
Development
Documentation
Installation
Migration
Special interest groups (SIGs)
The Foundation
Help and Support
How to create a public mirror for AlmaLinux
Mirrors are extremely important to provide a fast and reliable
infrastructure, and we are very grateful to people and organizations that
help us with this. The current list of public mirrors can be found on the
mirrors.almalinux.org
(opens new window)
website.
You can create a public AlmaLinux mirror in a few easy steps:
Make sure that you have enough free space: 500GB per major version is the suggested minimum. As there are currently three supported major versions (8, 9, and 10) (AlmaLinux OS Kitten being thought of separately, below) the recommended
minimum
storage space is 1.5TB. 2TB is more ideal. The current steady-state of the mirror is approximately 1TB. If you are also mirroring
AlmaLinux OS Kitten
(opens new window)
we recommend 2.5TB.
Optional but recommended
Use updated version of
rsync
with
xxhash
support.
xxhash
provides a superior hashing algorithm to
rsync
which lightens the load on the source and destination
servers.
We maintain an up-to-date version
of
rsync
in the AlmaLinux backports repository. To use this repository on EL8 and EL9 distros:
curl
--output
/etc/yum.repos.d/almalinux-backports-rsync.repo
yum
-y
update
rsync
You can verify that you have the expected version of
rsync
and
xxhash
support as follows:
rsync
--version
grep
xxhash
xxh128 xxh3 xxh64
xxhash
md5 md4 sha1 none
Synchronize with the official AlmaLinux mirror via
rsync
/usr/bin/rsync
-rlptvSH
--exclude
'.~tmp~'
--delete-delay --delay-updates rsync://rsync.repo.almalinux.org/almalinux/ /almalinux/dir/on/your/server/
The official tier0 rsync mirrors are in Atlanta, GA, USA; Seattle, WA, USA; Frankfurt, Germany, and Tokyo, Japan. We use geolocation-based DNS steering to send your traffic to the closest tier0 mirror.
Create a cron task to sync it periodically (we recommend updating the
mirror every 3 hours):
*/3 * * * /usr/bin/flock
-n
/var/run/almalinux_rsync.lock
-c
"/usr/bin/rsync -rlptvSH --exclude='.~tmp~' --delete-delay --delay-updates rsync://rsync.repo.almalinux.org/almalinux/ /almalinux/dir/on/your/server/"
Optional Mirroring of AlmaLinux OS Kitten
We maintain AlmaLinux OS Kitten in a separate rsync module so you can choose whether or not to sync it. It is not required to be mirrored to be an AlmaLinux mirror, but all mirroring is welcomed and appreciated. Do keep in mind that the
almalinux-kitten
module should be synced as its own top-level project and must NOT be placed inside of the main
almalinux
target on your server. AlmaLinux Kitten mirroring requires very little extra bandwidth.
Initial sync:
/usr/bin/rsync
-rlptvSH
--exclude
'.~tmp~'
--delete-delay --delay-updates rsync://rsync.kitten.repo.almalinux.org/almalinux-kitten/ /almalinux-kitten/dir/on/your/server/
Cron:
*/3 * * * /usr/bin/flock
-n
/var/run/almalinux_kitten_rsync.lock
-c
"/usr/bin/rsync -rlptvSH --exclude='.~tmp~' --delete-delay --delay-updates rsync://rsync.kitten.repo.almalinux.org/almalinux-kitten/ /almalinux-kitten/dir/on/your/server/"
Ensure the accuracy of city, longitude, and latitude data for your mirror IP(s) with IPinfo at
correction request
(opens new window)
with accurate city data
if the information is incorrect. Our mirrorlist URL tries to serve the best mirror to a client based on IPinfo geolocation data
so having accurate IPinfo data ensures the best possible experience for users.
Join the
mirror-announce
(opens new window)
mailing list to receive
important mirror-related updates from the AlmaLinux team.
You may also consider joining the
mirror
(opens new window)
mailing list for
general discussion/help related to mirrors.
We recommend joining the
mirrors channel on Mattermost
(opens new window)
for any questions
as well as updates from our team that impact mirror hosts in a live interactive format.
Fork the
github.com/AlmaLinux/mirrors
(opens new window)
repository and create a pull request that will add a YAML file describing
your mirror to the
mirrors.d
directory.
You can use the
official AlmaLinux repo file
(opens new window)
as an example. Your mirror does not have to provide all the protocols
that our main mirror provides, but either HTTP or HTTPS is required. Format of a mirror's config is described below.
Also, you can validate your config to use some JSON online validator using
that JSON schema
(opens new window)
and converting your config to JSON.
---
name
e.g. almalinux.mirror.link
cloud_type
aws. It'll be required if a mirror is located in AWS/Azure cloud
address
http
e.g. http
//almalinux.mirror.link/almalinux
https
e.g. https
//almalinux.mirror.link/almalinux
rsync
e.g. rsync
//almalinux.mirror.link/almalinux
ftp
e.g. ftp
//almalinux.mirror.link/almalinux
# if you are mirroring kitten as well provide only the protocols/URLs that you are hosting
# remove this section if you are not mirroring kitten
address_optional
kitten
http
e.g. http
//almalinux.mirror.link/almalinux
kitten
https
e.g. https
//almalinux.mirror.link/almalinux
kitten
rsync
e.g. rsync
//almalinux.mirror.link/almalinux
kitten
update_frequency
e.g. 1h
sponsor
e.g. Some company name
sponsor_url
e.g. http
//some.company.name
email
mail of a mirror's sponsor/holder
e.g. admin@some.company.name
geolocation
country
letter name of a country
e.g. US
state_province
e.g. New York. Field is required even if blank.
city
e.g. New York
private
false. A mirror is available in some local network if the param is true
monopoly
false. The mirrors list contains only this private mirror for a suitable client if param is true
# The list will be required if a mirror is local or cloud.
# It contains subnets behind which located a private mirror.
# Also, it can be string and contains URL which returns json list with subnets
subnets
# That parameter can specify ASN which is maintained by a mirror is located in cloud
# It can be number or list of numbers:
# asn: 40162
# or
# asn:
# - 41222
# - 91213
# or
# asn: [12345, 98765]
asn
see https
//en.wikipedia.org/wiki/Autonomous_system_(Internet)
# The list will be required if a mirror is located in Azure/AWS cloud
cloud_regions
e.g. australiacentral2
...
You could find more information about creating a pull request in
GitHub documentation
(opens new window)
After reviewing the pull request your mirror will be published at the
mirrors.almalinux.org
(opens new window)
page and will
be added to the mirrorlists that dnf package manager works with.
All mirror hosts are eligible for membership to the AlmaLinux OS Foundation.
Make sure you submit your
application for membership
(opens new window)
Documentation
Packaging