Agora

Sauvegardes et restauration

Sauvegarder la base d'Agora depuis l'administration, la télécharger hors du serveur et la restaurer. La copie de fichiers d'un panel n'est pas une sauvegarde.

Mis à jour le 5 oct. 2026, 13 h 36

Sur cette page
  1. Avant de commencer
  2. Étapes
  3. Faire une sauvegarde
  4. Restaurer
  5. Tu sais que c'est réussi quand…
  6. Si ça ne marche pas
  7. Pour aller plus loin
  8. Ce qu'il faut sauvegarder
  9. La sauvegarde en détail
  10. La restauration en détail
  11. En ligne de commande (Docker avec install.sh)
  12. Sur un panel ou un serveur Node.js
  13. La base du jeu
  14. Rythme conseillé

En bref. Administration → Agora → Sauvegardes exporte et restaure la base d'Agora (membres, forum, candidatures, réglages, licence). Tu fais une sauvegarde en deux clics, puis tu télécharges le fichier hors du serveur. Les dossiers du MDT ne sont pas dedans : ils vivent dans la base de ton serveur de jeu, à sauvegarder avec elle.

Sur un panel, la sauvegarde du serveur ne remplace pas celle d'Agora. La copie de fichiers du panel (sauvegarde du serveur, archive du dossier, SFTP) copie la base d'Agora pendant qu'elle écrit : le résultat est incohérent, souvent inutilisable à la restauration. Elle contient en plus le mot de passe de la base. Fais d'abord une sauvegarde Agora (un fichier .sql) et télécharge-la hors du serveur. <!-- À CONFIRMER : œuf tout-en-un (claude/pg-integre), BASE-INTEGREE §4 -->

Avant de commencer #

  • Sois administrateur de ton Hub. Pour restaurer ou importer, il faut être le propriétaire de l'installation (le badge Propriétaire dans Administration → Membres).
  • Un peu de place sur le disque du serveur : la sauvegarde s'y écrit avant que tu la télécharges.
  • Les mots (base de données, dump, .sql, SFTP) sont dans le glossaire. Si tu hésites entre la base d'Agora et celle de ton serveur de jeu, lis Les deux bases d'Agora.

Étapes #

Faire une sauvegarde #

  1. Ouvre Administration → Agora → Sauvegardes (réservé aux administrateurs).

    <!-- CAPTURE C-082 -->

  2. Choisis :

    • Télécharger un dump maintenant : un fichier .sql arrive dans ton navigateur, rien n'est gardé sur le serveur ;
    • Créer une sauvegarde : écrit un .sql dans le dossier de sauvegardes du serveur, avec le nom que tu donnes dans Nom (optionnel) (un horodatage sinon). La sauvegarde apparaît dans la liste Sauvegardes gardées dans Agora.
  3. Mets une copie hors du serveur. Une sauvegarde qui reste sur la machine disparaît avec elle. Avec Télécharger un dump maintenant, c'est déjà fait ; pour une sauvegarde gardée dans Agora, récupère le fichier :

    • panel : dans le gestionnaire de fichiers ou par SFTP, dossier app/.data/backups ;
    • serveur Node.js : dossier data/backups ;
    • Docker : docker cp agora:/app/.data/backups ./sauvegardes-agora.

Restaurer #

  1. Ouvre Administration → Agora → Sauvegardes.

  2. Soit Importer un fichier (un .sql de ton poste), soit Restaurer sur une sauvegarde de la liste Sauvegardes gardées dans Agora.

    <!-- CAPTURE C-084 -->

  3. Coche la case de confirmation (« Je comprends que toute la base d'Agora sera remplacée par… »), puis clique sur le bouton rouge final : Importer et écraser ou Restaurer.

    <!-- CAPTURE C-083 -->

⚠ Restaurer écrase entièrement la base actuelle. Rien n'est fusionné. N'importe qu'un fichier dont tu connais la provenance.

Tu sais que c'est réussi quand… #

  • La sauvegarde apparaît dans la liste Sauvegardes gardées dans Agora, et tu en as une copie hors du serveur.
  • Après une restauration, le site revient avec les données de la sauvegarde. Si la sauvegarde vient d'une version plus ancienne, Agora redémarre tout seul et remet la base au niveau (étape Remise à niveau après restauration… dans Administration → Agora) : le site revient en une minute environ.

Si ça ne marche pas #

Ce que tu voisCauseQue faire
« réservé au propriétaire de l'installation »Tu n'es pas le propriétaireSeul le propriétaire restaure et importe ; tu gardes la création, le téléchargement et la suppression. Voir Gérer les membres
« attends qu'elle se termine avant de restaurer »Une mise à jour d'Agora est en coursAttends la fin de la mise à jour : rien n'est écrasé
L'import depuis le navigateur est refuséLe fichier dépasse 12 Mo (limite d'un envoi depuis une page web)Dépose le .sql dans le dossier de sauvegardes du serveur (voir plus bas), puis Restaurer
Le fichier est refusé avant le lancementDump tronqué : il manque l'en-tête ou la ligne de fin de pg_dumpRefais la sauvegarde ; le fichier est incomplet
La restauration est annuléeAgora n'a pas pu écrire la copie de sécurité avant-restauration-… (disque plein)Libère de la place, puis recommence
Le site ne redémarre pas après une restaurationLa remise à niveau a échouéVoir Mise à jour échouée

<!-- CAPTURE C-085 -->

Pour aller plus loin #

Ce qu'il faut sauvegarder #

ÉlémentOùComment
Base d'AgoraPostgreSQL : intégrée au serveur (panel, Node.js) ou conteneur agora-db (Docker)Administration → Agora → Sauvegardes, puis une copie hors de la machine
Dossiers du MDT (fiches, mandats, rapports, photos…)Base du jeu, tables agora_*Ta sauvegarde habituelle du serveur de jeu (mysqldump)
Pièces jointes du forum et du MDTDossier de données d'Agora (.data/uploads, .data/mdt-fichiers)Copie du volume ou du dossier : elles ne sont dans aucun dump SQL
Secret de session.env (Docker), .agora/ (panel) ou data/ (Node.js)Le perdre rend illisibles les secrets enregistrés (mot de passe MySQL, token du bot…)
Identité de l'installationVolume agora_data (Docker), .agora/ (panel) ou data/ (Node.js)Perdue, l'installation est vue comme neuve par le serveur de licences

La sauvegarde en détail #

Chaque dump est complet ou absent : un dump interrompu est jeté. Les outils (pg_dump, psql 17) sont livrés avec Agora, rien à installer. La sauvegarde s'écrit au fil de l'eau dans un fichier .partiel, renommé seulement quand le dump est complet : elle ne charge plus toute la base en mémoire, ce qui compte sur un panel à 512 Mo. Le nom d'une sauvegarde ne peut pas commencer par pre-update-, réservé aux sauvegardes automatiques d'avant mise à jour.

Les sauvegardes d'Agora (celle d'avant mise à jour, celle d'avant migration, db:export) ne contiennent aucun jeton de session : une copie volée ne permet pas de se faire passer pour un administrateur connecté.

La restauration en détail #

Restaurer et importer sont réservés au propriétaire de l'installation : ils réécrivent toute la base, groupes et propriétaire compris. Un autre administrateur voit le message « réservé au propriétaire de l'installation » et rien n'est modifié.

Avant d'écraser quoi que ce soit, Agora sauvegarde la base telle qu'elle est dans avant-restauration-…sql (le nom exact est rappelé dans le message de confirmation). Une restauration lancée par erreur se reprend en restaurant ce fichier. S'il ne peut pas être écrit, la restauration est annulée. Agora garde les 5 plus récents de ces fichiers avant-restauration- et de ces copies import- ; les plus anciens sont effacés.

Une restauration est refusée pendant une mise à jour d'Agora (« attends qu'elle se termine avant de restaurer ») : rien n'est écrasé.

Une restauration lue en flux : les grosses bases passent #

Le .sql n'est jamais chargé en entier en mémoire : Agora le lit par morceaux de 1 Mo, le nettoie ligne par ligne (privilèges retirés, en-tête transaction_timeout rendu portable, méta-commandes coupées) et l'envoie à psql au rythme où celui-ci l'avale. Une base de plusieurs centaines de Mo se restaure donc avec quelques Mo de mémoire, y compris sur un panel à 512 Mo.

  • Un dump tronqué est refusé avant tout lancement : il faut l'en-tête de pg_dump et sa ligne de fin. Si la lecture échoue en cours de route (disque), psql est arrêté net et sa transaction annulée : la base n'est jamais remplacée par la moitié du fichier.
  • L'import depuis le navigateur reste limité à 12 Mo (c'est la limite d'un envoi depuis une page web). Pour un dump plus gros, dépose le .sql dans le dossier de sauvegardes du serveur (.data/backups, par le SFTP du panel ou docker cp) : il apparaît dans la liste Sauvegardes gardées dans Agora, puis Restaurer.
  • Une ligne de plus de 256 Mo sans retour à la ligne est refusée : ce n'est pas une sauvegarde d'Agora.

Une sauvegarde plus ancienne : remise à niveau automatique #

Une sauvegarde prise sur une version plus ancienne ramène aussi la structure de la base de son époque. Juste après la restauration, Agora compare les migrations de la base à celles de la version qui tourne. S'il en manque, il redémarre tout seul et remet la base au niveau, par le même passage qu'une mise à jour sur la même version : sauvegarde de la base restaurée, migrations, redémarrage, contrôle de santé. Tu peux le suivre dans Administration → Agora, étape Remise à niveau après restauration… ; le site revient en une minute environ. Il ne revient jamais à du code plus ancien.

  • Sans superviseur (installation manuelle), le message te dit de redémarrer Agora toi-même.
  • Une sauvegarde de la même version : aucun redémarrage.
  • Après cette remise à niveau, seule la version qui tourne est gardée sur le disque (la précédente est supprimée du disque). Un plantage dans les trois minutes qui suivent relance la même version, jamais une plus ancienne sur la base tout juste migrée.

En ligne de commande (Docker avec install.sh) #

# Sauvegarder
docker exec agora-db pg_dump -U agora --clean --if-exists --no-owner --no-privileges agora > agora-$(date +%F).sql

# Restaurer (arrête d'abord Agora)
docker stop agora
docker exec -i agora-db psql -U agora -v ON_ERROR_STOP=1 --single-transaction agora < agora-2026-09-24.sql
docker start agora

# Récupérer les sauvegardes faites par Agora
docker cp agora:/app/.data/backups ./sauvegardes-agora

<!-- CAPTURE C-087 -->

Sur un panel ou un serveur Node.js #

La base d'Agora est dans le serveur (par défaut) : tu n'as pas d'outil de base de données à installer, tout passe par l'administration d'Agora. Sauvegarde depuis Administration → Agora → Sauvegardes, puis télécharge les .sql (app/.data/backups sur un panel, data/backups sur Node.js) par le gestionnaire de fichiers ou le SFTP. Si tu as apporté ta propre base PostgreSQL externe, sauvegarde-la aussi avec les outils de son hébergeur.

La base du jeu #

Sauvegarde toute la base de ton serveur de jeu, comme tu le fais déjà pour tes personnages et tes véhicules. Les photos de dossier y sont stockées : un serveur actif peut peser lourd.

Avec le palier Pro, Serveur → Base de données propose aussi un écran Sauvegardes : Exporter la base du jeu (dump complet gardé dans Agora) et restauration ou import d'un .sql. Arrête d'abord le serveur FiveM (txAdmin ou panel) : Agora ne l'arrête plus lui-même.

Comment ça se passe :

  • Un export est complet ou absent : il s'écrit dans un fichier .partiel, renommé à la fin ; un export interrompu n'apparaît jamais dans la liste. Le téléchargement « en direct » avance au rythme de ton navigateur, sans rien accumuler en mémoire, et fermer la page l'arrête.
  • L'import et la restauration se lisent en flux, instruction par instruction : une base de plusieurs centaines de Mo passe avec quelques Mo de mémoire. Avant un import, Agora vérifie qu'il reste de la place sur le disque ; sinon il refuse avant de toucher à quoi que ce soit.
  • Une sauvegarde de sécurité (avant-import-jeu_…sql) est prise juste avant chaque import ou restauration, et l'import est annulé de lui-même s'il échoue. Les 5 plus récentes sont gardées après un import réussi, les plus anciennes effacées ; une sauvegarde que tu as nommée n'est jamais effacée.
  • Si l'import est interrompu (redémarrage, mémoire) ou si la reprise automatique échoue, la page affiche un bandeau rouge, même après coup, qui nomme la sauvegarde de sécurité à restaurer pour revenir à l'état d'avant. Il disparaît à l'import suivant.
  • Les restes d'un export ou d'un import coupés (.partiel, .part) sont effacés tout seuls au bout d'une heure.

<!-- CAPTURE C-086 -->

Rythme conseillé #

  • Avant chaque mise à jour : Agora le fait tout seul. Recopie le fichier hors de la machine.
  • Avant une manipulation risquée : une sauvegarde nommée (« avant-nettoyage »).
  • Chaque semaine : les deux bases, gardées ailleurs que sur la machine.

Cet article t'a aidé ?