Autant commencer par le serveur apache vu que c'est lui qui, au final, travaillera le plus.
Donc un serveur apache fonctionnel, je reviendrai sur la configuration du VirtualHost.
J'essaye avec mon user mais pour bien faire, il faudrait un utilisateur sans pouvoir et sans home:
#adduser --home=/pub/mirror --no-create-home --disabled-password mirror
On installe git si ça n'est pas fait :
#apt install git
puis :
git clone https://salsa.debian.org/mirror-team/archvsync.git /home/mirror
On change les droits de /home/mirror :
#chown -R user:user /home/mirror
On va dans /home/mirror/etc et on copie l'exemple de config de ftpsync :
cp ftpsync.conf.sample ftpsync-main.conf
puis on edite et/ou décommente les lignes suivantes de cette façon :
MIRRORNAME="mirror.tartux.net"
TO="/home/mirror/debian/"
RSYNC_PATH="debian"
RSYNC_HOST="ftp.fr.debian.org"
MAILTO="user"
ERRORSONLY="true"
FULLLOGS="true"
EXCLUDE=""
ARCH_EXCLUDE="alpha arm arm64 armel armhf hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mipsel mips powerpc ppc64el s390 s390x sh sparc"
LOGROTATE=14
LOCK="${TO}/Archive-Update-in-Progress-debian-${MIRRORNAME}"
RSYNC_OPTIONS1="--exclude=Packages* --exclude=Sources* --exclude=Release* --exclude=InRelease --exclude=i18n/* --exclude=ls-lR*"
#RSYNC_OPTIONS2="--max-delete=40000 --delay-updates --delete --delete-after --delete-excluded"
La ligne RSYNC_OPTIONS2 est à décommenter à la seconde passe, de même, j'ai commenté la ligne RSYNC_OPTIONS1 avant cette passe.
On lance ensuite la commande
/home/mirror/bin/ftpsync sync:archive:main
Je n'ai pas réussi à scinder squeeze, wheezy et jessie (oldstable, stable et testing). Les dépôts Sid et experimental sont là également. Il faut compter une quarantaine d'heure (avec 1 Go de RAM) de téléchargement et environ 310 Go pour les dépôts principaux debian, debian-update, debian-proposed-updates et debian-backports.
Pour security.debian.org, une vingtaine de Go et 2h30 de téléchargement, le module est debian-security (RSYNC_PATH).
Pour deb-multimedia.org, le module s'appelle deb, le dépôt fait 5 Go soit 40 minutes de téléchargement.
Serveur apache :
la configuration apache que j'ai mise est celle-ci:
<VirtualHost *:80>
ServeurName mirror.tartux.net
DocumentRoot /home/mirror
<Directory /home/mirror>
Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription
#?AllowOverride none
Require all granted
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Un redémarrage apache et le miroir est fonctionnel.
Reste le sources.list à configurer :
deb http://mirror.tartux.net jessie main contrib non-free
deb-src http://mirror.tartux.net jessie main contrib non-free
Et le cron à écrire, les dépôts sont mis à jour toutes les 6 heures chez Debian, je décale le tout d'une heure :
30 4/6 * * * /home/user/Git/bin/ftpsync sync:archive:security
0 4/6 * * * /home/user/Git/bin/ftpsync sync:archive:debian
Je ne vois rien à ajouter mais on ne sait jamais !