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
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 database | Game database | |
|---|---|---|
| What it is | Agora's notebook | Your FiveM server's database |
| Type | PostgreSQL | MySQL or MariaDB |
| It holds | Members, the forum, applications, donations, site settings, the license, the MDT configuration | Your 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 it | Agora, or its installation | Your framework (ESX, QBCore, Qbox): it already exists |
| What you do | Nothing, except back it up | Connect it once, in Server → Database |
| Without it | Agora does not start | The 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.envfile. - 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.mjsdownloads 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.
Open Server → Database, block Game database connection.
<!-- CAPTURE C-306 -->
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.
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/healthaddress answers"ok": trueand"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 see | Likely cause | What to do |
|---|---|---|
| Agora does not start and the console complains about the database (Docker) | The agora-db container is not running | docker 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 empty | The game database is not connected, or the framework is not detected | Connect the game server database and Supported frameworks |
| The game database test is refused | Wrong user, wrong password, or the user may not connect from Agora's machine | Game database unreachable or refused |
| You pasted your game database address in the panel's "Base de donnees" variable | That variable is the Hub's: it expects PostgreSQL, not MySQL | Empty 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_URLvariable, shaped likepostgresql://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?
Related articles
- Glossary: Agora's technical words, explained simplyHub, panel, egg, Docker, PostgreSQL, framework, lease: every technical word in the documentation defined in a sentence or two, by topic.
- Connect the game server databaseThe MDT reads your FiveM server's real database: create a dedicated MySQL user, reachable from Agora, then fill in Server → Database.
- Backups and restoreBack up Agora's database from the admin area, download it off the server and restore it. A panel's file copy is not a backup.
- Choose between Docker, the panel egg and a Node.js serverDocker if you have a machine of your own, the Pterodactyl or Pelican egg if your host gives you a panel, an agora.mjs file if you only have a Node.js server: all three give the same product.