Config reference
SeeKi reads a single TOML file at startup. This page walks every field group in the order the parser expects them: [server], [database], [tables], [display], [branding], and the optional [ssh] block. Every type and default is drawn from the source.
For where the file needs to live on disk, see Config locations.
A full example
[server]
host = "127.0.0.1"
port = 3141
[database]
kind = "postgres"
url = "postgres://user:password@localhost:5432/mydb"
max_connections = 5
[tables]
include = ["vehicles_log", "drivers", "audit_log"]
exclude = ["audit_log"]
[display.tables]
vehicles_log = "Fleet Log"
[display.columns.vehicles_log]
posn_lat = "Latitude"
supervisor_id = "Supervisor"
[branding]
title = "My Database"
subtitle = "Fleet Telemetry"
[server]
Where SeeKi listens for browser traffic.
| Field | Type | Default | Notes |
|---|---|---|---|
host | string | "127.0.0.1" | Address to bind. Leave as loopback for local use; set to "0.0.0.0" only if you intend to serve others on your network. |
port | integer (u16) | 3141 | TCP port. Pick any unused port between 1 and 65535. |
[database]
Which database to connect to, and how eagerly to pool connections.
| Field | Type | Default | Notes |
|---|---|---|---|
url | string | — required | Connection string. For PostgreSQL, use the standard postgres://user:pass@host:port/db form. See Connections for the full shape. |
kind | string | "postgres" | Database family. "postgres" is the supported engine today; "sqlite" is reserved for future work. |
max_connections | integer (u32) | 5 | Upper bound on the internal pool. Five is plenty for a single browser; raise it only if several people share the same SeeKi instance. |
[tables]
Optional. Controls which tables appear in the sidebar. Omit the whole block to show everything.
| Field | Type | Default | Notes |
|---|---|---|---|
include | array of string | unset (all tables) | Only these tables are shown. Match the name exactly as the database stores it. |
exclude | array of string | unset (none excluded) | Hide these tables. Applied after include, so an entry that appears in both is excluded. |
[display]
Optional. Replace the friendly names SeeKi generates from the raw table and column names. Useful when the auto-heuristic lands on something clumsy, like Posn Lat.
[display.tables]
Map raw table name to label shown in the sidebar.
[display.tables]
vehicles_log = "Fleet Log"
[display.columns.<table>]
Per-table column overrides. Keys are raw column names, values are labels.
[display.columns.vehicles_log]
posn_lat = "Latitude"
supervisor_id = "Supervisor"
Anything you do not override falls back to SeeKi’s heuristic: underscores become spaces, words are title-cased, and a trailing _id is dropped (supervisor_id → Supervisor).
[branding]
Optional. Replace the SeeKi title with your own.
| Field | Type | Default | Notes |
|---|---|---|---|
title | string | unset | Main label shown in the top bar. Example: "My Database". |
subtitle | string | unset | Short line beneath the title. Example: "Fleet Telemetry". |
[ssh]
Optional. Tunnel the database connection through an SSH bastion. See SSH tunneling for the full walkthrough.
| Field | Type | Default | Notes |
|---|---|---|---|
host | string | — required | Hostname of the SSH bastion. |
port | integer (u16) | 22 | SSH port on the bastion. |
username | string | — required | Login name on the bastion. |
auth_method | string | — required | One of "key", "agent", or "password". Password auth is not supported yet — use a key or the SSH agent. |
key_path | string | unset | Path to a private key. Required when auth_method = "key". |
Where SeeKi looks for the file
./seeki.toml(current working directory)~/.config/seeki/config.toml(platform config dir)
The first file found wins. If neither exists, SeeKi opens the setup wizard in the browser and writes a fresh seeki.toml for you.