soe
Connects the sqliteonline.com frontend straight to this server’s databases: a full SQL console in the browser, nothing to install. The block lives in the ROOT settings.json and serves every site; access is granted per user, per site. This example has it enabled.
To connect:
- In the site’s admin, open the Users page and tick the
soecheckbox next to your login. Access is off until an administrator grants it per user. - Open sqliteonline.com and left-click the Database button, the ⛁ icon at the top left of the panel.
- Pick Docker from the menu that opens.
- Fill the fields: url
https://your-site/soe/, db namemain(this site’s content),log(the node’s request log) — or, on a multi-site node, the namespaced formdomain/dbname(e.g.example.com/main; a bare name means the default site) — and your CMS login and password. - Press Connect. The frontend detects the sign-in method itself.
| key | default | description |
|---|---|---|
| path | /soe | URL prefix of the module; must not overlap /cms, static or your routes |
| row_limit | 100000 | max rows per query across all result sets; a number or a string like "100k" / "2m" |
| session_ttl_minutes | 60 | idle lifetime of a console session |
| query_ttl_secs | 30 | wall-clock deadline for one SQL request — a runaway query is interrupted, the connection survives |
The root block of this example, verbatim:
"soe": { "path": "/soe", "row_limit": "100k", "session_ttl_minutes": 60, "query_ttl_secs": 30 }To share the connection, press Link in the same form: it generates a URL that opens sqliteonline.com with the url, database (main) and login (admin) already filled in, so only the password is left to type. Handy for bookmarks and teammates (the URL part is percent-encoded):
https://sqliteonline.com/#emlink=https%3A%2F%2Fexample.dom%2Fsoe%2F;main;admin
Access is per user and off by default: auth is required, and an administrator ticks the soe checkbox on the site’s Users page. Role user gets read-only queries, admin writes too (the engine resyncs its cached counters after a write). The request-log database (log, authorized by the DEFAULT site’s users) is read-only even for admins: an audit trail nobody can clean over SQL. Sign-in is the same OPAQUE protocol as the admin UI — the password never leaves the browser; a failed sign-in never reveals whether the login, the flag or the database name was wrong, and attempts are rate-limited.
The SQL travels directly from your browser to this server. With access_log.mode = "sqlite" the log database is reachable here too, so you get traffic analytics without leaving the console — including traffic sources: SELECT referer, COUNT(*) c FROM access_log WHERE referer IS NOT NULL GROUP BY referer ORDER BY c DESC LIMIT 20; In duckdb mode the same log answers analytics-grade queries over months of traffic (see access_log).
Remove the block to disable the module entirely: the routes are not even registered.