Skip to content

Adminer

Adminer is a browser interface for a database — browsing tables, running queries, editing rows. One container, and no database of its own: it connects to the databases other stacks already run. Whoever reaches it has full access to those databases, DROP TABLE included, so the stack ships VPN-only with a hard rate limit.

Last run on a host 8 Nov 2026

Pinned at 6.3.0-standalone (released 3 Nov 2026) · the newest upstream release

Needs: Traefik running, a domain, and a database somewhere to point it at.

From apps/adminer/:

  1. Copy the environment file and set APP_TRAEFIK_HOST and TZ:

    Terminal window
    cp .env.example .env
  2. Start it:

    Terminal window
    docker compose up -d
  3. Open https://<APP_TRAEFIK_HOST>. There is no setup and no account to create — you type database credentials at each login, and nothing is stored.

Terminal window
docker compose ps # one service, healthy

The login form appearing is all the stack itself can demonstrate. Whether it can reach a database is the next section.

Blueprint stacks keep their databases on internal networks, so Adminer cannot see them by default. That is deliberate — the isolation is the point — and connecting means joining a network on purpose.

Terminal window
docker network connect wordpress-internal adminer-app

Then in the login form:

Field Value
Server wordpress-db
Username wp_user
Password from apps/wordpress/.secrets/db_pwd.txt
Database wordpress

Disconnect when you are done:

Terminal window
docker network disconnect wordpress-internal adminer-app

Add the networks to docker-compose.yml and declare each as external: true. Every target stack has to be running before Adminer starts.

Enter the hostname or address in the login form directly. What it takes to reach it depends on your network rather than on this stack.

Database None of its own.
State None. Connection details are typed per session and never kept.
Quiescing Not applicable.

Nothing to back up: Adminer is a client, not a store.

It earns one line in a restore plan for the opposite reason. After restoring a database, bring Adminer up, confirm the tables hold the rows you expect, and take it down again — a check on the restore without installing a database client on the host.

  1. Read the changelog. The 6.x line refuses servers that accept any password (PostgreSQL with trust authentication, for example), drops several plugins and needs an ES6 browser; UPSTREAM.md lists the changes per release.

  2. Raise APP_TAG in .env, then:

    Terminal window
    docker compose pull && docker compose up -d
  3. Log in to one database. There is no state to migrate, so a version that works works immediately.

The login form rejects a server name that exists. Adminer is not on that stack’s network. Connect it as shown above.

Sessions end after about twenty minutes idle. Upstream behaviour for an administration tool. Long query sessions need re-authentication.

Queries are gone after logging out. Adminer keeps no history between sessions. Keep anything you want to reuse in a local file.