# APT DEPOT 📦 Créer un dépôt Debian sécurisé via clé GPG pour héberger des paquets ## CONFIGURATION - Editer le fichier `app/entrypoint.sh` ```sh GPG_KEY_NAME="example" ... EMAIL="test@exemple.com" ``` - Changer le port `- 8000:` dans le `compose.yml` si besoin - Metre les paquets dans le dossier `depot/` ## UTILISATION - Démarrer le conteneur ```bash docker compose up -d ``` Note: La première fois, il génère les clés GPG :bulb: **A chaque ajout de paquet, redémarrer le conteneur pour qu'il resigne les paquets avec la clé GPG** #### Utiliser le dépôt pour installer des paquets - Ajouter la clé du dépôt ainsi que l'adresse dans les sources: ```bash sudo wget -O /etc/apt/trusted.gpg.d/gn-depot.asc https://deb.legaragenumerique.fr/pgp-key.public echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/gn-depot.asc] https://deb.legaragenumerique.fr stable main' \ | sudo tee /etc/apt/sources.list.d/gn-depot.list ``` - Mettre à jour les dépôts: ```bash sudo apt update ``` - Installer un paquet: ```bash sudo apt install geo -y ``` #### Création d'un paquet > [Créer un paquet Debian](https://git.legaragenumerique.fr/GARAGENUM/paquet-debian) #### Ajout d'un paquet au dépôt - Renommer le paquet: ```bash mv geo.deb geo_amd64.deb ``` - Placer le paquet dans le dossier `depot/`: ```bash mv geo_amd64.deb depot/ ``` - Redémarrer le conteneur: ```bash docker compose down -v && docker compose up -d --build ``` #### Si derrière un proxy ``` server { listen 80; server_name deb.domaine.tld; location / { return 301 https://$host$request_uri; } } server { listen 443 ssl http2; server_name deb.domaine.tld; # Certificats Let’s Encrypt (créés par certbot) ssl_certificate /etc/letsencrypt/live/deb.domaine.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/deb.domaine.tld/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers HIGH:!aNULL:!MD5; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options DENY; add_header X-XSS-Protection "1; mode=block"; add_header Referrer-Policy "no-referrer-when-downgrade"; access_log /var/log/nginx/depot.access.log; error_log /var/log/nginx/depot.error.log; location / { proxy_pass :>; autoindex on; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; } } ```