DocsStacks & databases
Database admin UI
Install a web admin interface (Adminer, phpMyAdmin, pgAdmin, Mongo Express, Redis Commander, or DbGate) for a managed database in one click, then open it from a domain or an IP and port.
- Where
- Database page → Overview tab → Admin UI card
- Form
- One web-admin container per database, on the aoox host
- Who
- Developers and up install it; viewers can't see the credentials
What it is
The Data browser is enough for looking at tables and running queries. When you need a more complete tool, aoox can install one Admin UI per managed database: a popular web-admin container that runs next to the database and connects to that database server. The container is named aoox-dbadmin-<slug> and runs on the aoox host.
Tools per engine
| Tool | Engines | Image (pinned version) |
|---|---|---|
| Adminer | MySQL, MariaDB, PostgreSQL (including variants) | adminer:5.4.2 |
| phpMyAdmin | MySQL, MariaDB | phpmyadmin:5.2.3 |
| pgAdmin | PostgreSQL (including variants) | dpage/pgadmin4:9.18.0 |
| Mongo Express | MongoDB | mongo-express:1.0.2-20-alpine3.19 |
| Redis Commander | Redis, Valkey | ghcr.io/joeferner/redis-commander:0.9.1 |
| DbGate | All engines | dbgate/dbgate:7.3.1-alpine |
The tools offered in the install dialog follow the database's engine. Image versions are pinned so an install looks the same over time; Redis Commander comes from GHCR because Docker Hub only has an old latest tag.
Installing
Open the database → Overview tab
The database must be running (otherwise the install is rejected with 409). Each database has at most one Admin UI.
Click Install Admin UI on the Admin UI card
Pick a tool, then pick how to open it:
- Domain — through the reverse proxy with your own hostname (point its DNS at this server). The proxy is installed automatically if it isn't running; HTTPS turns on once an ACME email is set. The hostname can't already be used by another domain.
- IP & port — published on a host port of this server, with no domain. The port must not be in use by an application, database, stack, or any other container. It listens on
127.0.0.1by default (open it through an SSH tunnel); pick Public in the dialog only if you accept the admin login being reachable from the internet.
At least one of the two is required; you can also use both a domain and an IP & port at once, as with applications.
Wait for the status to go from creating to running
The install runs in the background; pulling the image can take a few minutes. If it fails, the card shows the error message. The address button appears once it is
running.
Signing in
| Tool | How to sign in |
|---|---|
| Adminer, phpMyAdmin | They use the database's own login. Take the username and password from the Internal connection card on the Overview tab (the Show password button); no extra password is created. |
| pgAdmin, Mongo Express, Redis Commander, DbGate | They use credentials aoox generates (username admin; pgAdmin uses admin@example.com). Click Show credentials on the Admin UI card. pgAdmin asks for the database password when you connect to the server. |
Members with the viewer role can't see those credentials, and can't install or delete the Admin UI.
Removing
- Delete Admin UI on the card stops and removes its container. The database data is not affected.
- Deleting the database also deletes its Admin UI.
- Stopping the database does not stop the Admin UI, but it can't connect until the database is started again.
- The Admin UI is not included in a project export/import; install it again after importing.
- The Admin UI container has no volume: its settings come from aoox every time it is created, so nothing is lost when you delete it.
Security
- Use a domain with HTTPS for access from outside, or IP & port only on a trusted network / behind a firewall.
- Adminer can be pointed at other hosts on the
aooxnetwork if the user has that host's credentials. - Delete the Admin UI when it is not in use, and limit who has developer or higher in this project.
Common pitfalls
| Symptom | Cause & fix |
|---|---|
| 409 when installing | The database isn't running, or it already has an Admin UI. Start the database first. |
| 409 / 400: hostname or port | The hostname is used by another domain or Admin UI (409), or the host port is in use (400). Pick another. |
| Status error: container no longer exists | The container was removed outside aoox. Delete the Admin UI and install it again. |
| Can't sign in to Adminer/phpMyAdmin | Use the database login (not an Admin UI credential); see the Internal connection card on the Overview tab. |
| The page doesn't open through the domain | Check that DNS points at this server and the proxy is running. HTTPS needs an ACME email in the proxy settings. |
Next steps
Found a mistake? Edit this page on GitHub ↗