depot-apt/README.md

117 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 (pour que le dépôt l'intègre selon l'architecture):
```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 Lets 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 <IP-SERVEUR>:<PORT>;
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;
}
}
```
## REQUETES DE PAQUETS
Pour toute demande d'ajout de paquet Debian, Créer une [issue](https://git.legaragenumerique.fr/GARAGENUM/depot-apt/issues) avec le plus d'informations concernant le paquet (code source par exemple).