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.

FieldTypeDefaultNotes
hoststring"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.
portinteger (u16)3141TCP port. Pick any unused port between 1 and 65535.

[database]

Which database to connect to, and how eagerly to pool connections.

FieldTypeDefaultNotes
urlstring— requiredConnection string. For PostgreSQL, use the standard postgres://user:pass@host:port/db form. See Connections for the full shape.
kindstring"postgres"Database family. "postgres" is the supported engine today; "sqlite" is reserved for future work.
max_connectionsinteger (u32)5Upper 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.

FieldTypeDefaultNotes
includearray of stringunset (all tables)Only these tables are shown. Match the name exactly as the database stores it.
excludearray of stringunset (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.

FieldTypeDefaultNotes
titlestringunsetMain label shown in the top bar. Example: "My Database".
subtitlestringunsetShort line beneath the title. Example: "Fleet Telemetry".

[ssh]

Optional. Tunnel the database connection through an SSH bastion. See SSH tunneling for the full walkthrough.

FieldTypeDefaultNotes
hoststring— requiredHostname of the SSH bastion.
portinteger (u16)22SSH port on the bastion.
usernamestring— requiredLogin name on the bastion.
auth_methodstring— requiredOne of "key", "agent", or "password". Password auth is not supported yet — use a key or the SSH agent.
key_pathstringunsetPath to a private key. Required when auth_method = "key".

Where SeeKi looks for the file

  1. ./seeki.toml (current working directory)
  2. ~/.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.