Agora

Dépanner la base intégrée du Hub

Mémoire trop petite, disque plein, « la base intégrée n'a pas démarré » : les messages de la console quand la base de données du Hub, installée dans ton serveur de panel, pose problème, et le geste qui les corrige.

Mis à jour le 4 oct. 2026, 17 h 45

Sur cette page
  1. Avant de commencer
  2. Étapes
  3. Tu sais que c'est réussi quand…
  4. Si ça ne marche pas
  5. Les messages d'erreur (ligne ✗)
  6. Les avertissements et les lignes normales
  7. Pour aller plus loin
  8. Où est la base, et ce qu'elle expose
  9. Arrêter et couper
  10. La copie de fichiers du panel n'est pas une sauvegarde
  11. Passer à une base PostgreSQL externe (option avancée)
  12. Les chiffres à retenir

En bref. Quand tu installes Agora par un œuf de panel, ou sur un serveur Node.js, le Hub fournit sa propre base de données PostgreSQL à l'intérieur de ton serveur : c'est la « base intégrée ». Elle démarre toute seule. Si elle n'y arrive pas, la console du panel le dit en rouge (✗), avec une ligne de conseil (→). Cette page traduit chaque message en geste à faire.

Avant de commencer #

  • Vérifie que tu utilises bien la base intégrée. C'est le cas quand la variable Base de donnees (DATABASE_URL) du serveur est vide, ou, sur un serveur Node.js, quand agora.env ne contient pas de ligne DATABASE_URL. Si tu as renseigné une base PostgreSQL toi-même, cette page ne te concerne pas : relis Les deux bases d'Agora et les questions fréquentes.
  • Garde la console du panel ouverte : c'est là que tout s'affiche.
  • Les mots (panel, console, PostgreSQL, quota) sont dans le glossaire.

Étapes #

  1. Ouvre la console du serveur dans ton panel et remonte jusqu'à l'étape [5/6] Base de données — base intégrée, puis migrations. C'est l'étape où la base se prépare.

  2. Cherche la première ligne rouge. Elle commence par ✗ ; la ligne suivante, précédée de →, donne le conseil. Les lignes avec un ! orange sont des avertissements : le démarrage continue.

    <!-- CAPTURE C-312 -->

  3. Retrouve le message dans le tableau ci-dessous et applique le geste.

  4. Redémarre le serveur avec Start. Le démarrage reprend là où il s'est arrêté : une base déjà créée n'est jamais effacée, et un démarrage interrompu se reprend tout seul.

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

  • La console affiche ✓ base PostgreSQL intégrée prête, puis ✓ schéma à jour, puis ✓ Ready in ….
  • L'adresse /api/health de ton Hub répond "ok": true et "db": "ok".

Si ça ne marche pas #

Les messages d'erreur (ligne ✗) #

Message dans la consoleCe que ça veut direQue faire
mémoire du serveur trop petite pour la base intégrée (… Mo)Le serveur dispose de moins de 768 Mo : Agora et sa base ne tiennent pasDans l'administration du panel, donne 2 Go de mémoire au serveur (1,5 Go au minimum), puis redémarre
pas assez de place sur le disque pour la base intégrée (… Mo libres, 400 Mo nécessaires)Premier démarrage : le disque du serveur est trop petitAugmente le disque du serveur à 5 Go (10 Go sont plus confortables), puis redémarre
plus de place sur le disque pour créer la base intégréeLe disque s'est rempli pendant la création de la baseMême geste : augmente le disque, redémarre
pas de base intégrée pour cette machine (…)Le serveur n'est pas un Linux 64 bits Intel/AMD standard (ARM, ou image sans glibc)La base intégrée ne marche pas ici : choisis une autre machine, ou apporte une base PostgreSQL (voir plus bas)
téléchargement de PostgreSQL impossible : …Le serveur ne joint pas registry.npmjs.orgVérifie la sortie Internet du serveur (DNS, pare-feu), puis redémarre. Si ça se répète, apporte ta propre base
installation de PostgreSQL impossible : …L'extraction a échoué, souvent faute de placeLibère de la place (400 Mo libres au premier démarrage), puis redémarre
création de la base intégrée impossible (initdb)PostgreSQL n'a pas pu initialiser ses fichiersLis la ligne Détail : juste dessous ; si elle ne parle pas de disque ou de mémoire, ouvre un billet avec cette ligne : voir Ouvrir un billet de support
création de la base « agora » impossible ou mot de passe de la base intégrée non reposéUne étape de préparation a échouéRedémarre une fois. Si ça se répète, ouvre un billet avec la ligne Détail :
la base intégrée ne peut pas tourner en administrateur (root)Le serveur lance Agora en root, ce que PostgreSQL refuseSur un panel, c'est normalement un utilisateur ordinaire : demande à l'administrateur du panel, ou apporte ta propre base
dossier de données inadapté à la base intégrée (…)Le chemin du dossier de données est trop long ou contient des caractères inhabituelsGarde les dossiers par défaut (/home/container) ; sinon ouvre un billet
la base intégrée n'a pas démarréPostgreSQL a été lancé mais ne répond pas. Les dernières lignes de son journal (postgres.log) suiventCause la plus fréquente : mémoire ou disque insuffisants. Augmente l'un ou l'autre, redémarre ; lis les lignes affichées, elles nomment souvent la cause
la base de données n'a pas répondu, dans l'étape des migrationsLa base s'est arrêtée en route, ou n'a pas eu le temps de répondre. Le conseil affiché parle de DATABASE_URL : avec la base intégrée, ce n'est pas la cause (la variable doit rester vide)Redémarre. Si ça revient, regarde la mémoire (le panel a pu arrêter le processus) et les lignes postgres.log
sauvegarde de la base impossible : les migrations n'ont PAS été appliquéesLa sauvegarde d'avant migration n'a pas pu s'écrire (disque plein)Libère ou ajoute de l'espace, puis redémarre : la sauvegarde sera retentée avant de migrer

Les avertissements et les lignes normales #

Message dans la consoleCe que ça veut direQue faire
! mémoire juste (… Mo) : avec la base intégrée, 1,5 Go sont un minimum et 2 Go sont recommandésLe serveur démarre, mais il manque de marge : le panel peut l'arrêterPasse à 2 Go de mémoire
! disque presque plein (… Mo libres) : la base risque de s'arrêterMoins de 100 Mo libresLibère de la place (anciennes sauvegardes) ou augmente le disque
première installation de la base intégrée (scram-sha-256, aucune écoute réseau)…Normal au tout premier démarrageRien : la base se crée
initialisation de la base interrompue au démarrage précédent : cluster vide effacé, on recommenceLe serveur a été coupé pendant la toute première création de la base, qui n'avait encore rien contenuRien : elle est refaite
verrou PostgreSQL orphelin (arrêt brutal) : retiré, la base rejouera son journalLe serveur a été coupé brutalement (Kill, mémoire, coupure)Rien : PostgreSQL se rétablit tout seul
mot de passe de la base intégrée introuvable : un nouveau est poséLe fichier du mot de passe a été perduRien : un nouveau est posé, tes données sont gardées
la base intégrée ne tourne plus : redémarragePostgreSQL s'est arrêté en route (souvent faute de mémoire) ; Agora le relanceRien si la ligne base de données redémarrée suit ; sinon vois la mémoire du serveur

Pour aller plus loin #

Où est la base, et ce qu'elle expose #

  • Ses données sont dans le dossier .agora/pg du serveur (dossier data/pg sur un serveur Node.js). C'est le seul dossier qui survit aux redémarrages.
  • Elle n'écoute sur aucun port réseau : elle ne parle à Agora que par un fichier local. Il n'y a rien à ouvrir au pare-feu, et rien n'est atteignable depuis Internet.
  • Son mot de passe est tiré au sort une fois, rangé dans un fichier fermé et jamais affiché.
  • Son journal, postgres.log, est borné (environ 5 Mo). Quand la base intégrée n'a pas démarré, la console en recopie les dernières lignes. Le dossier .agora est fermé au gestionnaire de fichiers du panel : n'attends donc pas de l'y ouvrir, mais ces lignes de la console suffisent. <!-- À CONFIRMER : .agora/postgres.log est-il lisible dans le gestionnaire de fichiers malgré file_denylist ? (vérification banc) -->

Arrêter et couper #

  • Stop laisse Agora s'arrêter d'abord, puis la base : tu vois arrêt demandé puis base de données arrêtée proprement. Laisse-lui quelques secondes.
  • Kill (ou une coupure) est brutal mais sans danger pour les données : au démarrage suivant, PostgreSQL rejoue son journal tout seul.

La copie de fichiers du panel n'est pas une sauvegarde #

La sauvegarde du serveur, l'archive du dossier ou une copie par SFTP copient la base pendant qu'elle écrit : le résultat est incohérent, souvent inutilisable à la restauration. Et la copie contient le mot de passe de la base. Fais d'abord une sauvegarde d'Agora (un fichier .sql) et télécharge-la hors du serveur : voir Sauvegardes et restauration.

Passer à une base PostgreSQL externe (option avancée) #

À réserver au cas où la base intégrée ne peut pas tourner chez toi. Le principe : sauvegarder, changer de base, restaurer.

  1. Dans Administration → Agora → Sauvegardes, crée une sauvegarde et télécharge le fichier .sql hors du serveur.
  2. Crée ta base PostgreSQL externe (vide) et son utilisateur, chez ton hébergeur de bases.
  3. Colle son adresse (postgresql://utilisateur:motdepasse@hote:5432/base?schema=public) dans la variable Base de donnees, puis redémarre. Agora démarre sur cette base vide comme une installation neuve.
  4. Passe la mise en route si elle s'affiche, puis restaure le .sql dans Administration → Agora → Sauvegardes. La restauration est réservée au propriétaire de l'installation.
  5. Quand tout marche, l'ancien dossier .agora/pg n'est plus utilisé : tu peux le supprimer pour libérer la place.

Poser DATABASE_URL ne touche pas à l'ancien dossier : si tu vides de nouveau la variable, tu retrouves l'ancienne base intégrée telle que tu l'avais laissée. Pour revenir de l'externe vers l'intégrée, même marche à suivre à l'envers. <!-- À CONFIRMER : œuf tout-en-un (claude/pg-integre), BASE-INTEGREE §5 : procédure non éprouvée sur le banc, notamment la mise en route à refaire avant la restauration et la lecture des secrets chiffrés après restauration (AUTH_SECRET) -->

Les chiffres à retenir #

Valeur
Mémoire conseillée2 Go
Mémoire minimale1,5 Go (sous 768 Mo, Agora refuse de lancer la base)
Disque5 Go ; 400 Mo libres au premier démarrage
PlateformeLinux 64 bits Intel/AMD avec glibc (l'image Node standard d'un panel)

Cet article t'a aidé ?