Agora

The two Agora databases: the Hub's and the game's

Your installation uses two databases: the Hub's (PostgreSQL, provided and managed by Agora) and your game server's (MySQL or MariaDB, which you already have).

Updated on Oct 4, 2026, 5:45 p.m.

On this page
  1. The two databases in one picture
  2. Compare the two databases
  3. The Hub database: nothing to do
  4. The game database: connect it once
  5. You know it worked when…
  6. If it does not work
  7. Back up both databases
  8. Go further

In short. Your installation uses two databases (digital binders where programs keep their information) that must not be mixed up. The Hub database is Agora's notebook: Agora creates and manages it by itself, so you have nothing to do; the game database is your FiveM server's: it already exists, you only tell Agora how to read it.

The two databases in one picture #

<!-- CAPTURE C-001 -->

The Hub (your Agora site) keeps its own information in its own database, and reads your game server's information from the other one. The two databases never mix. The technical words are explained in the glossary.

Compare the two databases #

Hub databaseGame database
What it isAgora's notebookYour FiveM server's database
TypePostgreSQLMySQL or MariaDB
It holdsMembers, the forum, applications, donations, site settings, the license, the MDT configurationYour framework's characters, money, jobs and vehicles, plus the MDT records (citizen files, warrants, arrests, reports…) in tables whose name starts with agora_
Who creates itAgora, or its installationYour framework (ESX, QBCore, Qbox): it already exists
What you doNothing, except back it upConnect it once, in Server → Database
Without itAgora does not startThe forum works; the MDT, live map, HR and dealership do not

The Hub database: nothing to do #

Agora needs a PostgreSQL database. Depending on how you install it, Agora provides it:

  • Docker with install.sh: the script starts a second container, agora-db, with a randomly generated password. You have nothing to do.
  • Docker with a compose file written by hand: the same container is planned. One single thing to do: choose a password (POSTGRES_PASSWORD) in the .env file.
  • Pterodactyl or Pelican panel (egg): the database is built into Agora's own server. You leave the "Base de donnees" variable (the egg's labels are in French) empty, and there is nothing else to install or open. <!-- À CONFIRMER : œuf tout-en-un (claude/pg-integre) -->
  • Host Node.js server: on the first start, agora.mjs downloads PostgreSQL (about 23 MB) and installs it by itself.

In every case you write no SQL (the language of databases), create no table and import no file: Agora lays down its database structure (the "migrations") and its starting data by itself on the first start.

Panel trap. The Databases tab of a panel server usually creates a MySQL database. It is not for the Hub. You can use it for the game database, never for Agora's. <!-- À CONFIRMER : l'onglet Databases de Pelican propose-t-il PostgreSQL ? (vérification banc, phase 0 point 2) -->

The game database: connect it once #

The MDT, live map, HR and dealership read your server's characters in its database. You connect it only once.

  1. Open Server → Database, block Game database connection.

    <!-- CAPTURE C-306 -->

  2. If your panel is already linked to Agora, click Detect the configuration: Agora fills in the credentials and recognizes the framework. Otherwise, fill in Host, Port, User, Password and Database by hand, after creating a dedicated MySQL user: everything is described in Connect the game server database.

  3. Save, then click Test.

What Agora does in this database: it reads characters, jobs, ranks and vehicles without modifying them; it creates its own tables, prefixed agora_; it only writes to your tables for the dealership (money debit and delivered vehicle).

You know it worked when… #

  • Hub database: your Hub's /api/health address answers "ok": true and "db": "ok".
  • Game database: the Test button shows the MySQL version and the number of characters, and names the framework it picked.

If it does not work #

What you seeLikely causeWhat to do
Agora does not start and the console complains about the database (Docker)The agora-db container is not runningdocker ps must list agora and agora-db; restart with docker compose up -d in /opt/agora, then read the frequently asked questions
The forum works, but the MDT, live map or dealership stay emptyThe game database is not connected, or the framework is not detectedConnect the game server database and Supported frameworks
The game database test is refusedWrong user, wrong password, or the user may not connect from Agora's machineGame database unreachable or refused
You pasted your game database address in the panel's "Base de donnees" variableThat variable is the Hub's: it expects PostgreSQL, not MySQLEmpty the variable (the game database is set in Server → Database) then restart

<!-- À CONFIRMER : œuf tout-en-un (claude/pg-integre) ; dernière ligne du tableau ci-dessus : variable vide = base intégrée -->

Back up both databases #

  • Hub database: Administration → Agora, Backups block. Agora also makes one by itself before each update. See Backups and restore.
  • Game database: it is yours and your host's; with the Pro tier, Server → Database also offers to export the game database.

Go further #

  • Ports. PostgreSQL usually listens on port 5432, MySQL and MariaDB on 3306. A "3306" in an address therefore usually means the game database; a "5432", the Hub's.
  • The panel's file copy is not a backup of the built-in database. It copies a running database, which is inconsistent: only Agora's backups can be trusted. <!-- À CONFIRMER : œuf tout-en-un (claude/pg-integre) -->
  • Bringing your own PostgreSQL database. For advanced users only, never required: if you already have a PostgreSQL server, you can put its address in the DATABASE_URL variable, shaped like postgresql://user:password@host:5432/database?schema=public. It then takes priority over the built-in database. <!-- À CONFIRMER : œuf tout-en-un (claude/pg-integre) -->
  • Restricted roles. Agora itself creates, in the Hub database, two roles with limited rights: one for the application, one for restores.

Was this article helpful?