A web-based MySQL/MariaDB GUI editor
Project description
Lagun
A minimal, web-based MySQL/MariaDB GUI editor. Install it, run it, use it.
Features
- Web-based SQL editor with syntax highlighting, autocompletion, and multi-tab support
- Multi-statement execution — run multiple statements at once, each result shown in its own sub-tab
- Schema browser — explore databases, tables, columns, and indexes; resizable sidebar
- Schema management — create, modify, and drop tables, columns, and indexes
- In-line data editing — edit cells, insert rows, delete rows directly in the grid
- Import & export — CSV and SQL formats with streaming for large datasets; export respects active column filters
- Query history — full SQL with word wrap, copy or load any entry back into the editor
- Bookmarks — save and organize frequently used tables
- Connection management — import and export connection configs
- Secure connections — SSL/TLS, credentials stored in OS keyring, encrypted session backup
- LDAP/AD authentication — optional, via ldapgate
Install
pip install lagun
Usage
lagun serve
Opens the GUI in your browser. Connect to any MySQL or MariaDB database from there.
Options:
--host TEXT Bind host. [default: 127.0.0.1]
--port INTEGER Bind port. [default: 8080]
--no-open Don't open the browser automatically.
--ldap-config PATH Path to ldapgate YAML config to enable LDAP authentication.
LDAP Authentication
Lagun can require users to log in via LDAP/AD before accessing the editor. This uses ldapgate as FastAPI middleware — no separate proxy process needed.
pip install 'lagun[ldap]'
lagun serve --ldap-config /path/to/ldapgate.yaml
Shared connections and audit log
For LDAP deployments, an administrator can provide connections centrally and limit each one to selected LDAP usernames:
export LAGUN_DBS_PASSWORD='database-password'
lagun serve --ldap-config /etc/lagun/ldap.yaml --connections-config /etc/lagun/connections.yaml
connections:
- id: dbs-production
name: DBS Production
host: mariadb.internal
port: 3306
username: shared_mariadb_user
password_env: LAGUN_DBS_PASSWORD
default: true
allowed_users: [alice, bob]
Listed users can use the connection but cannot edit it. Removing it in the UI only hides it for that user. LDAP users may also create private connections; those are visible only to their owner. Edit this file and restart Lagun to change shared access.
LDAP API activity is recorded in Lagun's local lagun.db, not in MariaDB.
By default that database is ~/.lagun/lagun.db; set LAGUN_DB to relocate the
whole local store (saved connections, settings, and audit events), for example
LAGUN_DB=/var/lib/lagun/lagun.db. Read it from the server with lagun audit and purge old entries with
lagun audit purge --older-than 90.
For direct local HTTP usage, set proxy.secure_cookies: false in the ldapgate
config. Keep secure_cookies: true in production and run Lagun behind HTTPS
with trusted_proxies configured so LDAPGate can honor X-Forwarded-Proto.
When LDAP is enabled, a logout button appears in the top-right corner of the tab bar.
See the ldapgate README for config file documentation.
Screenshots
Development
Requires uv.
git clone https://github.com/anudeepd/lagun
cd lagun
uv sync
uv run lagun serve
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lagun-0.1.31.tar.gz.
File metadata
- Download URL: lagun-0.1.31.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2eb715b890ee6b3b649f0855dda63b6fa1d984db06f7f6a476098e84de2c495
|
|
| MD5 |
d4d114ba670726a33b0a8895bb3f2ad6
|
|
| BLAKE2b-256 |
71c7033540c739c44e34274d21c54ac5c8bc7708ea3e2a21093b350881d4c7fe
|
File details
Details for the file lagun-0.1.31-py3-none-any.whl.
File metadata
- Download URL: lagun-0.1.31-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c911288823e5b96b6388624ec7328036a4c9f8a3a373ba5ed42f0cec827e0f29
|
|
| MD5 |
545a2498c4465c7aecbf3e4737232931
|
|
| BLAKE2b-256 |
2d415859a7e766f9eed4dfd6756ca5b3847f2836ad01ab6fd9c785f09b8c231a
|