Installer un miroir local

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 !

Installer un miroir local

Installer un serveur apache rapidement

Il est pratique de tester/créer un site internet en local, pour cela, un serveur apache est nécessaire. Voici l'install à minima qui permettra de créer son site avec la plupart des CMS.

(Tout cela se fait en root bien sûr)

Il suffit d'installer les paquets :

#apt-get install apache2 apache2-utils php5 mysql-server php5-mysql

Ici, si on teste dans un navigateur l'adresse http://localhost ou http://127.0.0.1, on arrive à la page par défaut d'apache.

On peut y ajouter :

#apt-get install phpmyadmin

On va ensuite copier le fichier /etc/apache2/sites-avalaible/000-default.conf dans un fichier du nom de son choix au même endroit pour le modifier:

#cd /etc/apache2/sites-available
#cp 000-default.conf monsite.conf
#nano monsite.conf

On le modifie ainsi :

<VirtualHost *:80>
ServerName monsite.home
DocumentRoot /var/www/html/monsite     #  L'emplacement du futur site
ErrorLog /var/log/apache2/monsite-error.log     # Emplacement des logs erreurs
TransferLog /var/log/apache2/monsite-access.log     # Emplacement des logs d'accès
</VirtualHost>

On oublie pas de créer le répertoire que l'on vient d'appeler dans la config et de lui donner un propriétaire apache :

#mkdir /var/www/html/monsite
#chown www-data:www-data /var/www/html/monsite

On enclenche le site et on redémarre le service :

#a2ensite monsite

On édite le fichier /etc/hosts

#nano /etc/hosts

et on y ajoute cette ligne :

127.0.1.1       monsite.home       monsite

on relit les conf de network et apache

#service networking reload
#service apache2 reload

On lance http://monsite.home et on arrive sur une page index of / puisque le site est vide.

Le tour est joué !

Installer un serveur apache rapidement