$ aoox

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

ToolEnginesImage (pinned version)
AdminerMySQL, MariaDB, PostgreSQL (including variants)adminer:5.4.2
phpMyAdminMySQL, MariaDBphpmyadmin:5.2.3
pgAdminPostgreSQL (including variants)dpage/pgadmin4:9.18.0
Mongo ExpressMongoDBmongo-express:1.0.2-20-alpine3.19
Redis CommanderRedis, Valkeyghcr.io/joeferner/redis-commander:0.9.1
DbGateAll enginesdbgate/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

  1. 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.

  2. 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.1 by 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.

  3. 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

ToolHow to sign in
Adminer, phpMyAdminThey 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, DbGateThey 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

An Admin UI gives access to everything in the database. DbGate, Mongo Express, and Redis Commander already carry the database password inside their container, so anyone who has their login has full access. Don't open one over plain HTTP on the public internet.
  • 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 aoox network 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

SymptomCause & fix
409 when installingThe database isn't running, or it already has an Admin UI. Start the database first.
409 / 400: hostname or portThe 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 existsThe container was removed outside aoox. Delete the Admin UI and install it again.
Can't sign in to Adminer/phpMyAdminUse the database login (not an Admin UI credential); see the Internal connection card on the Overview tab.
The page doesn't open through the domainCheck 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 ↗