feat: ajout documentation Nginx Proxy Manager et scripts de déploiement
- Documentation complète pour Nginx Proxy Manager (docs/10-configuration-nginx-proxy-manager.md) - Script get-npm-token.sh pour générer automatiquement les tokens API - Exemple complet de .woodpecker.yml avec logique inline de déploiement - Documentation déploiement applications avec URLs dynamiques (docs/09-deploiement-applications.md) - Script deploy.sh comme alternative optionnelle - Mise à jour README avec références aux nouvelles documentations
This commit is contained in:
86
scripts/get-npm-token.sh
Executable file
86
scripts/get-npm-token.sh
Executable file
@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
# get-npm-token.sh - Génère un token API pour Nginx Proxy Manager
|
||||
# Usage: ./get-npm-token.sh [NPM_URL] [EMAIL]
|
||||
|
||||
set -e
|
||||
|
||||
NPM_URL=${1:-"http://localhost:81"}
|
||||
EMAIL=${2:-"admin@example.com"}
|
||||
|
||||
echo "Génération du token API pour Nginx Proxy Manager..."
|
||||
echo "URL: ${NPM_URL}"
|
||||
echo "Email: ${EMAIL}"
|
||||
echo ""
|
||||
|
||||
# Demander le mot de passe de manière sécurisée
|
||||
read -sp "Mot de passe: " PASSWORD
|
||||
echo ""
|
||||
|
||||
# Vérifier que curl est disponible
|
||||
if ! command -v curl &> /dev/null; then
|
||||
echo "❌ curl n'est pas installé"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Vérifier que jq est disponible
|
||||
if ! command -v jq &> /dev/null; then
|
||||
echo "⚠️ jq n'est pas installé, installation..."
|
||||
if command -v apk &> /dev/null; then
|
||||
apk add --no-cache jq 2>/dev/null || echo "Impossible d'installer jq"
|
||||
elif command -v apt-get &> /dev/null; then
|
||||
apt-get update && apt-get install -y jq 2>/dev/null || echo "Impossible d'installer jq"
|
||||
else
|
||||
echo "❌ Veuillez installer jq manuellement"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Obtenir le token
|
||||
echo "Connexion à l'API..."
|
||||
RESPONSE=$(curl -s -X POST "${NPM_URL}/api/tokens" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{
|
||||
\"identity\": \"${EMAIL}\",
|
||||
\"secret\": \"${PASSWORD}\"
|
||||
}")
|
||||
|
||||
# Vérifier les erreurs HTTP
|
||||
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST "${NPM_URL}/api/tokens" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{
|
||||
\"identity\": \"${EMAIL}\",
|
||||
\"secret\": \"${PASSWORD}\"
|
||||
}")
|
||||
|
||||
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ]; then
|
||||
echo "❌ Erreur HTTP ${HTTP_CODE}"
|
||||
echo "Réponse: ${RESPONSE}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extraire le token
|
||||
TOKEN=$(echo "${RESPONSE}" | jq -r '.token' 2>/dev/null)
|
||||
|
||||
if [ "${TOKEN}" = "null" ] || [ -z "${TOKEN}" ]; then
|
||||
echo "❌ Erreur lors de la génération du token"
|
||||
echo "Réponse: ${RESPONSE}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "✅ Token généré avec succès !"
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════════════"
|
||||
echo "Token: ${TOKEN}"
|
||||
echo "═══════════════════════════════════════════════════════════"
|
||||
echo ""
|
||||
echo "📝 Pour l'utiliser dans Woodpecker CI :"
|
||||
echo " 1. Allez dans Woodpecker > Settings > Secrets"
|
||||
echo " 2. Ajoutez NPM_API_TOKEN avec la valeur ci-dessus"
|
||||
echo " 3. Ajoutez NPM_API_URL avec la valeur: ${NPM_URL}"
|
||||
echo ""
|
||||
echo "🧪 Test du token :"
|
||||
echo " curl -H \"Authorization: Bearer ${TOKEN}\" \\"
|
||||
echo " ${NPM_URL}/api/nginx/proxy-hosts"
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user