Flase is a fast, open source web-based database client for MySQL, MariaDB and PostgreSQL. It is a modern alternative to phpMyAdmin and Adminer with the comfort of desktop tools like DataGrip, DBeaver or HeidiSQL - but running in the browser, in one Docker container.
Browse and edit data in a spreadsheet-like grid, change table structure with SQL preview, run queries in an SQL console, import and export dumps, draw ER diagrams and manage users - all from one self-hosted web application.



docker run -d --name flase -p 3001:3001 -e JWT_SECRET=$(openssl rand -hex 32) backen/flase:latest
Open http://localhost:3001 and add a connection, for example mysql://db-host:3306, mariadb://db-host:3306
or postgresql://db-host:5432/database. Passwords are never stored - they are asked when connecting.
services:
flase:
image: backen/flase:latest
ports:
- "3001:3001"
environment:
JWT_SECRET: change-me-to-a-long-random-string
# connections defined by administrator (optional)
FLASE_CONNECTIONS: >-
[{"name": "Shop production", "dsn": "mysql://10.0.0.5:3306", "username": "app", "readOnly": true, "color": "#d9534f"},
"postgresql://10.0.0.6:5432/reports"]
# users can use only connections above
FLASE_ALLOW_CUSTOM_CONNECTIONS: "false"
| Variable | Default | Description |
|---|---|---|
PORT | 3001 | Port of the server (application, API and websocket) |
JWT_SECRET | random at start | Secret of session tokens. Set it when more instances run behind a load balancer |
JWT_TOKEN_EXPIRE | 1h | Lifetime of a session token (it is refreshed while the application is open) |
IDLE_CONNECTION_RELEASE_SECONDS | 30 | Database connections of a closed browser are released after this time |
FLASE_CONNECTIONS | - | JSON array of predefined connections: a DSN string or an object with name, dsn, username, readOnly, color, confirmChanges |
FLASE_ALLOW_CUSTOM_CONNECTIONS | true | false = users can use only predefined connections |
Predefined connections are resolved by the server: the address is never taken from the browser and readOnly
is enforced for the whole session. Credentials written in a predefined DSN are never sent to the browser.
The browser of the user needs access to cdn.jsdelivr.net (SQL editor) and Google Fonts; the database is accessed only
by the server.
docker compose up # front on :3000 (also :8070), server on :3001, test MySQL / MariaDB / PostgreSQL
tests/run.sh # all tests (server + browser), tests/run.sh ui console = only tests with "console"
tests/run.sh image # build the production image and run browser smoke test against it
front/ - React 18 + TypeScript (Create React App), Monaco editorserver/ - Node.js + Express + WebSocket (express-ws) + TypeScript, drivers mysql and pgdocker/production/Dockerfile - production image, published to Docker Hub by GitHub Actions on a v* tagChanges of each version are in CHANGELOG.md.
Flase is developed in free time. If it saves you time, you can support it:
Bug reports and ideas are welcome in GitHub issues.
Flase is free software: you can redistribute it and/or modify it under the terms of the
GNU Affero General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version (AGPL-3.0-or-later).
In short: you can use, modify and share Flase freely, also commercially. When you distribute it or let users interact with a modified version over a network (e.g. you host it as a service), you must make the source code of your version available under the same license.
Keywords: phpMyAdmin alternative, Adminer alternative, web database client, MySQL GUI, MariaDB GUI, PostgreSQL GUI, pgAdmin alternative, database manager, database administration tool, SQL editor, SQL client, self-hosted, Docker, open source.
Content type
Image
Digest
sha256:1bbaf06c4…
Size
72.5 MB
Last updated
1 day ago
docker pull backen/flase