1,603 22/05/2025 07/04/2026 3 min

Creare un mirror Debian pubblico è un'ottima soluzione per migliorare l'efficienza della distribuzione dei pacchetti nella tua organizzazione o comunità. I mirror Debian sono server che replicano i repository ufficiali, permettendo agli utenti di scaricare pacchetti e aggiornamenti da una fonte locale anziché dai server principali. Creare un mirror pubblico migliora l’efficienza della rete Debian e offre vantaggi come:
✔ Velocità di download superiori per utenti nella tua area geografica
✔ Riduzione del carico sui server Debian ufficiali
✔ Disponibilità continua anche in caso di interruzioni della rete principale

Preparazione del Server

Prima di iniziare, assicurati di avere:

  • Un server con almeno 150GB di spazio disponibile
  • Connessione internet stabile (minimo 100Mbps consigliato)
  • Accesso root o sudo
  • Un dominio o IP pubblico dedicato

Installazione dei Pacchetti Necessari

Aggiorniamo prima il sistema e installiamo i pacchetti richiesti:

sudo apt update && sudo apt upgrade -y sudo apt install -y debmirror nginx rsync

Configurazione del Mirror

Creiamo la directory che conterrà i repository:

sudo mkdir -p /var/www/html/debian

Ora creiamo uno script per automatizzare la sincronizzazione:

sudo nano /usr/local/bin/debmirror-debian.sh

Incolla questo contenuto:

#!/bin/bash
MIRROR_DIR="/var/www/html/debian"
LOGFILE="/var/log/debmirror.log"

debmirror \
  --arch=amd64,arm64 \
  --section=main,contrib,non-free \
  --host=deb.debian.org \
  --root=/debian \
  --method=rsync \
  --progress \
  --nosource \
  --diff=none \
  --verbose \
  $MIRROR_DIR \
  >> $LOGFILE 2>&1

Rendi lo script eseguibile:

sudo chmod +x /usr/local/bin/debmirror-debian.sh

Prima Sincronizzazione

Esegui lo script per avviare il download iniziale:

sudo /usr/local/bin/debmirror-debian.sh

Questa operazione potrebbe richiedere diverse ore a seconda della tua connessione internet.

Configurazione del Server Web

Configuriamo Nginx per servire i file del mirror:

sudo nano /etc/nginx/sites-available/debian-mirror

Aggiungi questa configurazione:

server {
    listen 80;
    server_name debian-mirror.tuosito.it;
    
    root /var/www/html/debian;
    autoindex on;
    
    location / {
        try_files $uri $uri/ =404;
    }
    
    access_log /var/log/nginx/debian-mirror.access.log;
    error_log /var/log/nginx/debian-mirror.error.log;
}

Abilita il sito e riavvia Nginx:

sudo ln -s /etc/nginx/sites-available/debian-mirror /etc/nginx/sites-enabled/
sudo systemctl restart nginx

Aggiunta di HTTPS

Per maggiore sicurezza, installiamo un certificato SSL con Let's Encrypt:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d debian-mirror.tuosito.it

Manutenzione Automatica

Per mantenere il mirror aggiornato, aggiungiamo un cron job:

sudo crontab -e

Aggiungi questa riga:

0 4 * * * /usr/local/bin/debmirror-debian.sh

Per pulire i pacchetti obsoleti:

sudo apt install debmirror-cleaner
debmirror-cleaner /var/www/html/debian

Utilizzo del Mirror

Gli utenti possono configurare i loro sistemi modificando /etc/apt/sources.list:

deb https://debian-mirror.tuosito.it/debian bookworm main contrib non-free
deb https://debian-mirror.tuosito.it/debian bookworm-updates main contrib non-free
deb https://debian-mirror.tuosito.it/debian-security bookworm-security main contrib non-free

Poi eseguire:

sudo apt update

Considerazioni Finali

Hai ora un mirror Debian completo e aggiornato automaticamente. Per ottimizzare ulteriormente:

  • Monitora l'utilizzo della banda con vnstat
  • Considera l'uso di apt-cacher-ng per reti locali
  • Registra il tuo mirror nella lista ufficiale Debian per contribuire alla comunità

Per copiare i comandi bash:

  1. Seleziona il testo del comando
  2. Premi Ctrl+C (o Cmd+C su Mac)
  3. Incolla nel terminale con Ctrl+V (o Cmd+V)

Hai bisogno di ulteriori chiarimenti? Sono qui per aiutarti!