GradePush
EN GitHub Essayer la démo

Mises à jour et sauvegardes

Sauvegardez PostgreSQL et les clés de GradePush ensemble. La base de données seule ne suffit pas à restaurer les identifiants GitHub chiffrés.

Créer une sauvegarde

Exécutez ces commandes dans le dossier d’installation. Vérifiez la réussite de chaque commande et assurez-vous que le fichier de sauvegarde n’est pas vide avant de vous y fier.

umask 077
mkdir -p backups
docker compose up -d db
docker compose exec -T db sh -c 'PGPASSWORD="$POSTGRES_PASSWORD" pg_dump --format=custom --no-owner --username="$POSTGRES_USER" "$POSTGRES_DB"' > backups/gradepush.dump
docker compose exec -T app cat /var/lib/gradepush/secret_key_base > backups/secret_key_base
docker compose exec -T app cat /var/lib/gradepush/credential_encryption_key > backups/credential_encryption_key

Conservez les fichiers chiffrés, avec un accès limité aux opérateurs autorisés. Gardez une copie hors du serveur. Préservez .env, compose.yaml et les volumes caddy_data et caddy_config dans votre plan de récupération.

Si SECRET_KEY_BASE ou CREDENTIAL_ENCRYPTION_KEY provient d’un gestionnaire de secrets externe, sauvegardez cette valeur exacte plutôt que de vous fier au fichier généré dans le volume. Une nouvelle clé de chiffrement ne peut pas déchiffrer une base existante.

Tester la restauration sur une instance séparée

La restauration suivante remplace les objets et les données de la base configurée. Testez-la sur une instance séparée. Utilisez le bon projet Compose avec son environnement et arrêtez-vous si une commande échoue.

Placez les fichiers de sauvegarde dans backups/ dans le dossier de l’installation de récupération. Utilisez des versions compatibles de GradePush et PostgreSQL et restaurez les clés fournies à l’externe dans leur gestionnaire de secrets avant de démarrer l’application.

docker compose up -d db
docker compose stop app
cat backups/gradepush.dump | docker compose exec -T db sh -c 'PGPASSWORD="$POSTGRES_PASSWORD" pg_restore --clean --if-exists --exit-on-error --single-transaction --no-owner --username="$POSTGRES_USER" --dbname="$POSTGRES_DB"'
cat backups/secret_key_base | docker compose run --rm --no-deps --entrypoint sh app -c 'umask 077; cat > /var/lib/gradepush/secret_key_base.tmp && mv /var/lib/gradepush/secret_key_base.tmp /var/lib/gradepush/secret_key_base'
cat backups/credential_encryption_key | docker compose run --rm --no-deps --entrypoint sh app -c 'umask 077; cat > /var/lib/gradepush/credential_encryption_key.tmp && mv /var/lib/gradepush/credential_encryption_key.tmp /var/lib/gradepush/credential_encryption_key'
docker compose up -d app

Après la restauration, vérifiez que vous pouvez vous connecter, ouvrir une classe et accéder à ses dépôts GitHub.

Mettre à jour GradePush

  1. Consultez les notes de version et les instructions de migration.
  2. Créez et vérifiez une nouvelle sauvegarde.
  3. Modifiez GRADEPUSH_IMAGE dans .env pour choisir la version publiée voulue. L’installation utilise une image à version fixe : un téléchargement seul ne choisit pas une nouvelle version.
  4. Téléchargez et redémarrez avec le même projet Compose, les mêmes fichiers et le même environnement :
docker compose pull
docker compose up -d --wait
docker compose logs --tail=100 app

Le démarrage exécute les migrations de la base de données et s’arrête si une migration échoue. Ne supprimez pas les volumes et ne modifiez pas l’environnement de la base existante pendant la mise à jour. Une ancienne image peut être incompatible avec le schéma migré; un retour arrière peut nécessiter la restauration de la base et de ses clés.

Rechercher dans la documentation

Recherchez un sujet, une fonctionnalité ou une commande.