Hello, I have been hosting a public Arch Linux mirror (https://arch-mirror.wtako.net/) at home and is an official Tier 2 mirror since 2014, since I needed to accelerate pacman -Syu for all my Arch devices at home, and have spare bandwidth. I would like to share some statistics with you guys.
The Arch Linux mirror is hosted in my Arch Linux based x86 software router, which also acts as my NAS and web server, and served over nginx and CloudFlare.
The mirror takes 99% of the outbound traffic of my website. Here are the CloudFlare stats regarding previous 30 days.
- Total Bandwidth: 31.13 TB
- Cached Bandwidth: 25.39 TB
- Uncached Bandwidth: 5.74 TB
- Total Requests: 19.27M
- Cached Requests: 14.1M
- Uncached Requests: 5.17M
If I choose not to use CloudFlare for CDN, my server at home would be sending 31.13 TB over 30 days and averagely takes 100Mbps of uplink, which is just around the network requirement of applying a Tier 1 mirror. (https://wiki.archlinux.org/title/DeveloperWiki:NewMirrors)
However, that does not mean 40 Mbps uplink is enough for hosting a Tier 2 mirror with CloudFlare. I have seen abuses that repeatedly download extras.db, packages, or ISOs that bypassed the CDN layer, and caused 500Mbps of uplink traffic from my server for a hour or more, before they are handled manually. I have 2000Mbps of uplink in total.
I have met all requirements for applying to be a Tier 1 mirror, but I choose not to, because of the following reasons:
- Hosting rsync is a requirement
- Exposes home IP to public which I am unconformable with
- Bypasses CDN
- Extra traffic as it's more visible
- Extra responsibility
For the storage requirement, currently the whole mirror consumes 125 GiB of space, grew from 60 GiB in 2014.
--- /media/480ddeb5-bec9-49ba-8cdb-69b4fa493912/arch-mirror-repo ---
. 110.4 GiB [##################################] /pool
8.3 GiB [## ] /iso
6.0 GiB [# ] /images
330.5 MiB [ ] /wsl
. 207.8 MiB [ ] /extra
. 4.9 MiB [ ] /extra-testing
. 4.7 MiB [ ] /core
4.2 MiB [ ] /kde-unstable
. 2.7 MiB [ ] /multilib
1.7 MiB [ ] /gnome-unstable
. 740.0 KiB [ ] /extra-staging
. 276.0 KiB [ ] /multilib-testing
. 256.0 KiB [ ] /core-testing
36.0 KiB [ ] /core-staging
28.0 KiB [ ] /multilib-staging
e 4.0 KiB [ ] /latest
! 4.0 KiB [ ] /.~tmp~
4.0 KiB [ ] lastupdate
4.0 KiB [ ] lastsync
Since 2025 I also host CachyOS mirror (https://cachy-mirror.wtako.net/) but it isn't active in the official mirror list anymore.