Documentation

Frequently Asked Questions

Common questions about buying, running, updating and using QueryGlow.

Licensing, Pricing & Updates

What does the license cover?

$79 once. Run QueryGlow on every server you run, let your whole team use the same install, and use it for client work on your own infrastructure. A client who wants their own installation needs their own license. Every 1.x update is included; a 2.x release may be a new purchase. You get the source code, under a commercial license (not open source).

Pricing and checkout · Full license text

“Quite frankly, for a one-time payment you really can't go wrong.” Jean-Francois, Mildor Violon, verified customer

Is there a demo?

Yes. Live demo: the real app on a sample database, read-only, AI switched off, no signup. Open the demo. Agent Access is switched off there too.

How do updates work?

One command in your QueryGlow directory:

./queryglow update

It stops if tracked files have local changes, backs up .env and the app data, fast-forwards to the new release, validates the nginx config before anything restarts, keeps the running image as queryglow:previous, checks that the new version is serving, and rolls back on its own if not.

./queryglow update --check only reports whether a newer release exists. --tag v1.3.0 pins or downgrades to a release, and ./queryglow rollback returns to the release of the last snapshot. ./update.sh still works and does the same.

Your data (/app/data) is preserved; only the application is updated. Updating QueryGlow in detail.

Is there a license key?

No. QueryGlow does not use DRM or license keys. Once you have the code, it runs without phoning home to validate anything. The only update check is a git fetch against your own remote, and it runs only when you ask for it.

Does QueryGlow send anything home?

No telemetry, no tracking. Your rows never leave your server. Two things do go out: the browser loads the SQL editor from cdn.jsdelivr.net, and Ask AI, if you use it, sends your schema (never rows) to the AI provider you chose.

Can I modify the code?

Yes. You can modify QueryGlow for your own use: add features, change the UI, or integrate it into your tools. You cannot redistribute or resell the code. Local changes to tracked files make ./queryglow update stop and tell you how to stash them; settings belong in .env, which is never overwritten.

Safe Mode & Security

Why is my DROP TABLE / DELETE query blocked?

Safe Mode is on by default. It blocks these in the Query Editor and for agents:

  • DROP TABLE and TRUNCATE
  • Dropping indexes, views, materialized views, sequences and schemas
  • DELETE or UPDATE without a WHERE clause

To switch to Power Mode, set QUERYGLOW_ALLOW_DESTRUCTIVE=true in your .env and recreate the container (a restart does not read .env again):

docker compose -f docker-compose.production.yml up -d --force-recreate queryglow

See Environment Variables.

Can I run DROP DATABASE?

No. Some statements are always blocked, in Safe Mode and in Power Mode: DROP DATABASE, SHUTDOWN, and SQL that runs commands on the server or reads and writes files there. Use your database's own CLI for these.

How are my database passwords stored?

Database passwords, SSH keys and passphrases, and AI keys entered in the app are encrypted with AES-256-GCM using a key derived from your SESSION_SECRET. They are only decrypted in memory when needed. If someone steals your connections.json file, they cannot read the passwords without the secret.

AI Assistant

Do I need an AI API key?

No. The AI assistant is optional; everything else works without it. To use it, paste your own OpenAI, Anthropic or Google key under Ask AI > AI providers (stored encrypted on your server, with a Test button), or set OPENAI_API_KEY, ANTHROPIC_API_KEY or GOOGLE_API_KEY in .env, which wins over the app. AI assistant setup.

Does the AI see my data?

No rows are ever sent. Ask AI sends your database type, table and column names with their types, and your prompt. Never rows.

Why am I getting rate limited?

In standalone mode, nginx limits Ask AI to 30 requests per minute per IP. That is separate from your AI provider's own rate limits.

Technical Usage

What do I need to run it?

A Linux server with Docker (512 MB RAM minimum, 1 GB recommended), a domain pointing at it for HTTPS, and a non-root user with sudo. ./queryglow install sets up the rest. Quick start.

Which databases are supported?

Six database types:

  • PostgreSQL, including managed ones (Supabase, Neon, RDS)
  • MySQL (renaming a column needs MySQL 8.0 or newer)
  • MariaDB (renaming a column needs MariaDB 10.5 or newer)
  • SQLite, file based (path restricted to /app/data)
  • CockroachDB, PostgreSQL compatible distributed SQL
  • TimescaleDB, PostgreSQL with time-series extensions

Does it support multiple users?

Your whole team uses the same install. Access is one shared login (Basic Auth, set up by the installer, asked once per browser); there are no per-user accounts or roles. For extra protection, put it behind network level security (VPN, Tailscale). AI agents get their own tokens through Agent Access, one per agent.

Where is data stored?

All application state is stored in JSON files in /app/data:

  • connections.json: connections with encrypted credentials
  • saved-queries.json: saved SQL (per connection)
  • query-history.json: the last 1,000 queries across all connections
  • ai-settings.json: AI keys entered in the app (encrypted) and models
  • agent-tokens.json: agent tokens, stored as hashes
  • agent-activity.json: the Activity tab records
  • ssh-known-hosts.json: pinned SSH host keys

This directory is the Docker volume queryglow-data and persists across restarts and updates. Back it up with ./queryglow backup.

How do I connect to a database on the same server?

Use localhost or 127.0.0.1 as the host, or click Find local servers. Production deployments use network_mode: host, so the container shares your server's network and needs no special Docker hostname.

Can AI agents use it?

Yes, over MCP with scoped, read-only by default tokens. Every call shows up in the Activity tab. Agent Access.

Troubleshooting

Connection failed: timeout

QueryGlow waits 5 seconds for the database to accept the connection. The port is not reachable: check that your database is running and listening on the right interface. For databases on the same server, use localhost. For remote databases, consider an SSH tunnel.

Lost all my connections after an update

Your SESSION_SECRET changed or was lost. It encrypts stored passwords and AI keys saved in the app; if it changes, they become unreadable. Restore your original .env from a snapshot with ./queryglow restore backups/<timestamp> --env (this also puts that snapshot's app data back), or enter the passwords again.

CockroachDB won't connect

CockroachDB may have IPv6 resolution issues. Use 127.0.0.1 instead of localhost as the host.

Didn't find your answer? Check the Troubleshooting Guide, email [email protected], or, as a customer, open a GitHub issue.