From 458f944e61d57256cabbedbf75d4e2f9bf6ae971 Mon Sep 17 00:00:00 2001 From: greg Date: Fri, 6 Mar 2026 15:28:14 +0100 Subject: [PATCH] add generate release + client install script --- app/entrypoint.sh | 79 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 60 insertions(+), 19 deletions(-) diff --git a/app/entrypoint.sh b/app/entrypoint.sh index d73f7fc..226d3bd 100644 --- a/app/entrypoint.sh +++ b/app/entrypoint.sh @@ -4,15 +4,16 @@ set -e # ============================================================ # CONFIGURATION — modifiez ces variables selon vos besoins # ============================================================ +DOMAIN="deb.legaragenumerique.fr" # adresse du dépôt GPG_KEY_NAME="gn-depot" EMAIL="admin@lgn.dev" -DIST_NAME="stable" # Nom de la distribution : stable, focal, bookworm, etc. -COMPONENT="main" # Composante : main, contrib, non-free, etc. -ARCH="amd64" # Architecture : amd64, arm64, all, etc. +DIST_NAME="stable" # Nom de la distribution : stable, focal, bookworm, etc. +COMPONENT="main" # Composante : main, contrib, non-free, etc. +ARCH="amd64" # Architecture : amd64, arm64, all, etc. -REPO_ORIGIN="GN-depot" # Nom affiché dans le fichier Release -REPO_LABEL="GN-depot" # Label affiché dans le fichier Release +REPO_ORIGIN="GN-depot" # Nom affiché dans le fichier Release +REPO_LABEL="GN-depot" # Label affiché dans le fichier Release REPO_DESCRIPTION="Dépôt du garage numérique" # Priorité du dépôt recommandée pour les clients (générée dans le fichier .pref) @@ -50,8 +51,8 @@ make_keys() { echo "🔐 Génération des clés GPG" # S'assurer que le dossier destination existe - mkdir -p "$(dirname "$KEY_PUBLIC")" # ← ligne ajoutée - mkdir -p "$(dirname "$KEY_PRIVATE")" # ← ligne ajoutée + mkdir -p "$(dirname "$KEY_PUBLIC")" + mkdir -p "$(dirname "$KEY_PRIVATE")" cat > example-pgp-key.batch < "$KEY_PUBLIC" gpg --armor --export-secret-keys "$GPG_KEY_NAME" > "$KEY_PRIVATE" chmod 600 "$KEY_PRIVATE" - # Pas besoin du cp : KEY_PUBLIC est déjà dans ./apt-repo/ } # ------------------------------------------------------------ @@ -130,7 +130,6 @@ sign_packages() { gpg --import /workspace/secret/pgp-key.private echo "⚙️ Génération de Release" - # Appeler generate_release depuis le bon répertoire (on est déjà dans ./apt-repo) generate_release "$(pwd)" > "dists/$DIST_NAME/Release" echo "🔏 Signature du Release" @@ -149,7 +148,7 @@ sign_packages() { # Génération du fichier de priorité pour les clients # ------------------------------------------------------------ generate_client_pref() { - local pref_file="./apt-repo/mon-depot.pref" + local pref_file="./apt-repo/gn-depot.pref" cat > "$pref_file" <1000 → installe même en cas de régression de version Package: * -Pin: origin $(hostname -f 2>/dev/null || echo "votre-domaine.tld") +Pin: origin $DOMAIN Pin-Priority: $REPO_PRIORITY EOF echo "📄 Fichier de priorité client généré : $pref_file" @@ -172,17 +171,58 @@ EOF # Génération du sources.list pour les clients # ------------------------------------------------------------ generate_client_sources() { - local sources_file="./apt-repo/mon-depot.list" - local domain - domain=$(hostname -f 2>/dev/null || echo "votre-domaine.tld") + local sources_file="./apt-repo/gn-depot.list" cat > "$sources_file" < ./apt-repo/install-repo.sh < /etc/apt/sources.list.d/gn-depot.list + +echo "⚙️ Définition de la priorité (\$PRIORITY)..." +cat > /etc/apt/preferences.d/gn-depot.pref <" +EOF + + chmod +x ./apt-repo/install-repo.sh + echo "📄 Script d'installation client généré : install-repo.sh" +} + # ============================================================ # MAIN # ============================================================ @@ -199,6 +239,7 @@ cp ./depot/* "$POOL_DIR/" 2>/dev/null || true sign_packages generate_client_pref generate_client_sources +generate_install_script echo "🚀 Lancement du serveur Gunicorn" cd /workspace @@ -207,7 +248,7 @@ gunicorn -b 0.0.0.0:8000 server:app echo "" echo "✅ Dépôt APT disponible" -echo " 📡 URL : https://votre-domaine.tld" -echo " 🔑 Clé pub : https://votre-domaine.tld/pgp-key.public" -echo " 📋 Sources : https://votre-domaine.tld/mon-depot.list" -echo " ⚙️ Priorité : https://votre-domaine.tld/mon-depot.pref" \ No newline at end of file +echo " 📡 URL : https://${DOMAIN}" +echo " 🔑 Clé pub : https://${DOMAIN}/pgp-key.public" +echo " 📋 Sources : https://${DOMAIN}/gn-depot.list" +echo " ⚙️ Priorité : https://${DOMAIN}/gn-depot.pref" \ No newline at end of file