The Missing GUI for Your Docker Stack

QueryGlow runs in Docker on your server, next to the containers you already have. One command installs it with HTTPS and a login, one command updates it. Schema-only AI, Safe Mode and six engines, in the browser.

Adminer and pgAdmin are free. QueryGlow: $79 once. Self-hosted, source code included.

Try the live demo
  • 512 MB container limit
  • Node.js 22
  • 6 Databases
  • Schema-Only AI
  • Web-Based
  • “Beautiful interface and very intuitive.”
    Jean-Francois, Mildor Violon, verified customer
https://db.your-company.com
QueryGlow New Connection dialog with a Connection URL field and a Find local servers button

Paste the DATABASE_URL from your .env, or let Find local servers check the standard ports on the machine.

What the Free Docker Tools Cover

Adminer, pgAdmin and phpMyAdmin are free and they work. Here is where each one stops.

Adminer: One PHP File

Adminer is free and it works. It has no destructive-query guard, no built-in SSH tunnel, and AI only through a plugin.

pgAdmin: PostgreSQL Only

pgAdmin is the official PostgreSQL admin tool. Run MySQL or SQLite next to it and you need a second tool.

phpMyAdmin: MySQL and MariaDB

phpMyAdmin covers MySQL and MariaDB only. QueryGlow handles six engines in one UI.

Install Once, Update with One Command

QueryGlow runs in Docker on a Linux server next to any compose stack, including Supabase self-hosted via Docker. You need Docker (512 MB RAM minimum, 1 GB recommended), a domain pointing at the server for HTTPS, and a non-root user with sudo.

on your server
git clone [email protected]:queryglow-app/queryglow.git
cd queryglow
./queryglow install

Step 1

Clone the repository

Step 2

./queryglow install (domain, HTTPS, login)

Step 3

Open your domain and sign in

Standalone mode

On a server without a system nginx, Docker runs three containers: the app, nginx with HTTPS and Basic Auth, and certbot, which renews the Let's Encrypt certificate.

Integration mode

If a system nginx already serves your other sites, only the app container runs and the installer adds a site with its own login to your nginx.

Updating is one command

./queryglow update backs up first, checks the nginx config before anything restarts, keeps the running image as queryglow:previous, and checks that the new version is serving. If it is not, it rolls back on its own. The app itself never phones home: the update check is a git fetch on your server, only when you ask.

deploy@your-server: ~/queryglow
$ ./queryglow update --checkInstalled: 1.2.1 (v1.2.1, 05d13c0) on branch mainAvailable: 1.3.0 (v1.3.0, 6060169) on origin/main→ Update available. Run: ./queryglow update $ ./queryglow update→ Backing up to backups/20260925-081057/ …→ Fast-forwarding main to 1.3.0 (v1.3.0, 6060169) ...→ Re-rendering nginx config for db.your-company.com (app port 3000)…→ Validating the rendered config…  config OK→ Building the new image (the running containers keep serving until it succeeds) ...→ Starting the new release ...→ Waiting for http://127.0.0.1:3000/api/health ...✓ Update complete: 1.3.0 (v1.3.0, 6060169). Backup: backups/20260925-081057

The queryglow command

It needs only bash, git, Docker with the compose plugin and curl on the host. No Node.js on the host.

  • ./queryglow install

    Runs the installer on a server that already has Docker: nginx with Basic Auth, a Let's Encrypt certificate, the app.

  • ./queryglow update

    Backs up, fetches the newest release, rebuilds, verifies, rolls back on failure. --check, --dry-run and --tag are there too.

  • ./queryglow status

    Mode, domain, installed and running version, containers, certificate expiry, last backup and last update.

  • ./queryglow doctor

    Checks host and install; --report prints a support report without a single .env value.

  • ./queryglow backup / restore / rollback

    Snapshots of your QueryGlow settings and app data, and the way back to the previous release.

  • ./queryglow logs

    The last 100 lines of the app, nginx or certbot container; -f follows.

The installed version shows in the app's sidebar footer and at GET /api/version. How updating works and what shipped in each release.

QueryGlow vs Docker Alternatives

What it is

Adminer

Single PHP file

pgAdmin

Python + React web app

QueryGlow

Node.js 22 web app in Docker, behind nginx

Database Support

Adminer

Many databases

pgAdmin

PostgreSQL only

QueryGlow

6 databases

AI SQL Generation

Adminer

Via plugin (Gemini)

pgAdmin

AI Assistant (since 9.13)

QueryGlow

Your own OpenAI, Anthropic or Google key; schema only, never rows

Query guard

Adminer

None

pgAdmin

No statement guard

QueryGlow

Blocks DROP DATABASE always; DROP TABLE, TRUNCATE and DELETE/UPDATE without WHERE by default

SSH Tunnels

Adminer

No (needs external)

pgAdmin

Yes

QueryGlow

Yes, host key pinned on first use

CSV Import

Adminer

CSV import

pgAdmin

Yes

QueryGlow

INSERT, UPSERT or REPLACE

Credential Encryption

Adminer

Stores no connection list; permanent-login password encrypted

pgAdmin

Optional

QueryGlow

AES-256-GCM always

Price

Adminer

Free

pgAdmin

Free

QueryGlow

$79 once

Adminer and pgAdmin facts as of September 2026, from adminer.org and the pgAdmin documentation.

Honest note: Adminer and pgAdmin are free. QueryGlow is $79 once. If you only need basic access and do not need Safe Mode, schema-only AI or one install for the whole team, the free tools work fine.

See it before you pay

Open the live demo (read-only sample database, AI switched off), no signup. If it fits, buy once and run it next to your stack.

Try the live demo

Stripe checkout. You'll need a GitHub account for the repo invite. No refunds, so try the read-only demo first.

Built for Docker Workflows

Node.js 22, 512 MB Limit

512 MB RAM minimum, 1 GB recommended, with a 512 MB container limit. Runs on Node.js 22 as a non-root user, bound to localhost behind nginx.

Docker Networking

Installed with ./queryglow install, QueryGlow uses host networking: databases on the same server are at 127.0.0.1. Find local servers checks the standard ports for you.

One Command to Update

./queryglow update backs up, checks that the new version answers, and rolls back if it does not.

AI SQL Generation

Describe what you want in plain English and review the SQL before it runs. Your own OpenAI, Anthropic or Google key, entered in the app and stored encrypted, with a Test button.

Web-Based Access

Reach your Docker databases from any device with a browser. No desktop app needed: open a URL and sign in once.

Encrypted Credentials

Saved passwords, SSH keys and in-app AI keys are encrypted with AES-256-GCM. Someone who reads your volume still cannot read the passwords without the key.

Connecting to Your Databases

Databases on the Same Server

QueryGlow uses host networking. A database installed on the server, or a container that publishes its port there, is at 127.0.0.1.

Host: 127.0.0.1
Port: 5432

Paste the URL You Already Have

Paste the DATABASE_URL from your .env and the form fills itself. Find local servers checks ports 5432, 5433, 3306, 3307 and 26257 on the machine; Find databases on this server lists every database your login can open and adds them in one go.

postgres://app:[email protected]:5432/app

Frequently Asked Questions

How do I install QueryGlow next to my Docker stack?
Clone the repository on your Linux server and run ./queryglow install. On a server without a system nginx (standalone mode) it starts three containers: the app, nginx with HTTPS and Basic Auth, and certbot for Let's Encrypt. If a system nginx already runs (integration mode), only the app container runs and the installer adds a site to your nginx. You need Docker with the compose plugin, a domain pointing at the server, and a non-root user with sudo.
Can I just add a service block to my docker-compose.yml?
Not as a drop-in. The image binds the app to 127.0.0.1 and leaves the login and HTTPS to nginx, so a plain port mapping cannot reach it and would have no login. The supported path is ./queryglow install, which runs QueryGlow in Docker next to the containers you already have.
How do I connect to my database container from QueryGlow?
Installed with ./queryglow install, QueryGlow uses host networking. A database installed on the same server, or a container that publishes its port there, is at 127.0.0.1. Find local servers checks the standard ports for you, or paste the DATABASE_URL from your .env and the form fills itself. Databases on other hosts are reached by hostname or through an SSH tunnel.
How does QueryGlow compare with Adminer?
Different trade-offs. Adminer is free: a single PHP file, with AI only through a plugin and no destructive-query guard. QueryGlow is $79 once and adds schema-only AI with your own key, Safe Mode on by default, SSH tunnels and CSV import with INSERT, UPSERT and REPLACE modes. If you only need basic access, Adminer works.
How does QueryGlow compare with pgAdmin in Docker?
pgAdmin is the official PostgreSQL admin tool and covers PostgreSQL only; since 9.13 it has an AI Assistant. QueryGlow covers six engines, runs inside a 512 MB container limit, and adds Safe Mode and schema-only AI with your own key. pgAdmin keeps the edge on advanced PostgreSQL-specific administration.
How do I update QueryGlow?
Run ./queryglow update. It refuses if you have local changes, backs up .env, app data and nginx files, fast-forwards to the new release, validates the nginx config before anything restarts, keeps the running image as queryglow:previous, waits for the health check and checks that the new version is serving. If any step fails, it rolls back on its own and leaves a receipt. The app itself never checks for updates.
How much RAM does QueryGlow need?
QueryGlow needs 512 MB RAM minimum, with 1 GB recommended, and the container ships with a 512 MB memory limit. It runs on Node.js 22.

Complete Your Docker Stack

Try the live demo first: the real app on a sample database, read-only, AI switched off, no signup. If it clicks, grab a lifetime license for $79.

Try the live demo

After you pay: a GitHub invite to the private repository, then ./queryglow install on your server. Every 1.x update is one ./queryglow update away.