Restructure project following production-ready standards

- Add comprehensive docker-compose configuration with health checks
- Create Makefile with 16 utility commands for easy management
- Implement robust backup/restore/update scripts with error handling
- Add optimized PostgreSQL configuration for Gitea workload
- Enhance .env.example with clear dev/prod sections and documentation
- Create comprehensive README with installation, configuration, and maintenance guides
- Improve .gitignore to exclude all sensitive and generated files
- Add Redis persistence (AOF) and memory limits
- Configure service dependencies with health conditions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
BeauTroll
2025-12-16 19:12:43 +01:00
parent 7b6ba15d8f
commit 6cb3d4239e
9 changed files with 1231 additions and 12 deletions

106
scripts/update.sh Executable file
View File

@@ -0,0 +1,106 @@
#!/bin/bash
# ============================================
# Script de mise à jour Gitea
# ============================================
# Ce script met à jour Gitea de manière sécurisée
# avec une sauvegarde automatique avant la mise à jour
set -e # Arrêter en cas d'erreur
# Couleurs pour l'affichage
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Charger les variables d'environnement
if [ -f .env ]; then
source .env
else
echo -e "${RED}Erreur: Fichier .env non trouvé${NC}"
exit 1
fi
# Fonction de nettoyage en cas d'erreur
cleanup() {
echo -e "${YELLOW}Une erreur s'est produite. Vérifiez l'état des services.${NC}"
echo "Pour revenir à l'état précédent, utilisez la dernière sauvegarde:"
echo " make restore FILE=backups/gitea_backup_*.tar.gz"
}
trap cleanup ERR
echo -e "${GREEN}=== Mise à jour de Gitea ===${NC}"
echo ""
# Vérifier que les services tournent
if ! docker compose ps | grep -q "gitea.*running"; then
echo -e "${YELLOW}Avertissement: Gitea ne semble pas être en cours d'exécution${NC}"
read -p "Continuer quand même? (oui/non) " -r
if [[ ! $REPLY =~ ^[Oo][Uu][Ii]$ ]]; then
echo "Mise à jour annulée."
exit 0
fi
fi
echo -e "${YELLOW}[1/6] Création d'une sauvegarde de sécurité...${NC}"
if ! bash scripts/backup.sh; then
echo -e "${RED}Erreur: La sauvegarde a échoué. Mise à jour annulée.${NC}"
exit 1
fi
echo -e "${GREEN}✓ Sauvegarde créée${NC}"
echo -e "${YELLOW}[2/6] Téléchargement des nouvelles images...${NC}"
docker compose pull
echo -e "${GREEN}✓ Images téléchargées${NC}"
echo -e "${YELLOW}[3/6] Arrêt des services...${NC}"
docker compose down
echo -e "${GREEN}✓ Services arrêtés${NC}"
echo -e "${YELLOW}[4/6] Démarrage avec les nouvelles versions...${NC}"
docker compose up -d
echo -e "${GREEN}✓ Services démarrés${NC}"
echo -e "${YELLOW}[5/6] Attente du démarrage complet...${NC}"
sleep 10
# Attendre que Gitea soit prêt
MAX_TRIES=60
COUNTER=0
until docker compose exec -T gitea wget -q --spider http://localhost:3000/api/healthz 2>/dev/null; do
COUNTER=$((COUNTER + 1))
if [ $COUNTER -gt $MAX_TRIES ]; then
echo -e "${RED}Erreur: Gitea ne répond pas après la mise à jour${NC}"
echo "Vérifiez les logs: docker compose logs gitea"
exit 1
fi
echo "En attente de Gitea... ($COUNTER/$MAX_TRIES)"
sleep 2
done
echo -e "${GREEN}✓ Gitea répond${NC}"
echo -e "${YELLOW}[6/6] Vérification de l'état...${NC}"
# Afficher les versions
echo ""
echo "Versions actuelles:"
docker compose images
echo ""
echo "État des services:"
docker compose ps
echo ""
echo -e "${GREEN}=== Mise à jour terminée avec succès ===${NC}"
echo ""
echo "Vérifications recommandées:"
echo " 1. Accéder à l'interface web: http://localhost:3000"
echo " 2. Vérifier les dépôts existants"
echo " 3. Tester les fonctionnalités principales"
echo " 4. Consulter les logs: docker compose logs -f gitea"
echo ""
echo "En cas de problème, restaurez la sauvegarde:"
LATEST_BACKUP=$(ls -t backups/gitea_backup_*.tar.gz 2>/dev/null | head -n 1)
if [ -n "$LATEST_BACKUP" ]; then
echo " make restore FILE=$LATEST_BACKUP"
fi