Pre-alpha. No tagged release and no upgrade path between versions. Use for evaluation and development only, not production.
Core DevPre-alpha

Configuration

How the INI config file and CLI flags control database, HTTP, addon discovery, logging, and branding.

Pre-alpha. No tagged release or upgrade path. Use for evaluation and development only.

The config file

Copy sumeru.conf.example next to your workspace go.mod and edit. Paths in the INI resolve against the config file directory, not your shell cwd.

[options]
db_host = localhost
db_port = 5432
db_user = postgres
db_password = postgres
db_name = sumeru
db_sslmode = disable
http_port = 8080
http_interface =
dev_mode = true
setup_localhost_only = true
setup_token =
addons_path = ../sumeru/addons,../sumeru_addons,./addons
log_enabled = true
log_stdout = true

Database (required)

KeyPurposeDefault
db_hostPostgreSQL host
db_portPostgreSQL port
db_userDatabase user
db_passwordDatabase password
db_nameDatabase name
db_sslmodeSSL mode (disable, require, …)

HTTP (required)

KeyPurposeDefault
http_portListen port
http_interfaceBind address (empty = all interfaces)empty
dev_modeDebug logging and dev behaviourfalse

CLI override: -p or --http-port.

Set http_interface = 127.0.0.1 to restrict the HTTP server to localhost (similar to setup_localhost_only for the setup wizard).

Setup wizard (first run)

KeyPurposeDefault
setup_localhost_onlyBind setup to 127.0.0.1false
setup_tokenOptional setup secret; empty = skipempty

Addons (required)

KeyPurpose
addons_pathComma-separated addon roots; later paths override earlier for same module name

Also read by go generate ./cmd/sumeru for code generation.

Logging

KeyPurposeDefault
log_enabledMaster logging switchtrue
log_stdoutJSON logs to terminaltrue
log_fileOptional log file pathempty
log_rollingRotate log filefalse
log_max_size_mbMax size before rotate
log_max_backupsRotated files to keep
log_max_age_daysMax age of rotated files
log_timezoneLog timestamp zone (Local, UTC)Local

Enable at least one sink (log_stdout and/or log_file).

Paths and branding (optional)

KeyPurpose
sumeru_homeAnchor for default assets/templates when INI is outside core tree
assets_pathOverride static assets directory
templates_pathOverride HTML templates directory
brand_cssExtra CSS URL for shell branding
logo_pathCustom logo path for web shell
company_display_nameDefault company label in shell
user_display_nameDefault user label format

Runtime parameters (not INI)

Some policies live in sys.config.parameter in the database, for example:

  • auth.password_min_length
  • auth.password_complexity

Manage these via Settings after first boot — they are not sumeru.conf keys.

Database pool (optional)

Tune PostgreSQL connection pooling for production load:

KeyPurposeDefault
db_max_open_connsMax open connections to primaryGo default
db_max_idle_connsMax idle connections in poolGo default
db_conn_max_lifetime_minutesRecycle connections after N minutes0 (no limit)

Read replica (optional)

KeyPurpose
db_read_replica_dsnFull libpq DSN for a read replica

When set, search, search_read, and list workspace queries prefer the replica. Writes always use the primary.

Rate limiting (optional)

KeyPurposeDefault
rate_limit_rpmMax requests per minute per client IP on /api/rpc and /web/login0 (disabled)

SMTP (optional)

Configure outbound mail for password reset and notifications:

KeyPurpose
smtp_hostSMTP server hostname
smtp_portPort (587 STARTTLS or 465 SMTPS; default 587)
smtp_userAuth username (optional)
smtp_passwordAuth password (optional)
smtp_fromFrom address (required to send)

Without SMTP, password reset actions log a message instead of sending email.

CLI overrides

FlagEffect
-c pathConfig file path
-p, --http-portOverride http_port
-i mod1,mod2 or -i allInstall named modules, or all not-yet-installed modules in dependency order
-u mod or -u allUpdate module(s)
--stop-after-initExit after install/update (no HTTP server)

addons_path

This key decides which addons exist. Typical workspace layout:

addons_path = ../sumeru/addons,../sumeru_addons,./addons

Core kernel apps → standard business apps → your custom addons.

Next step

Continue with First boot to initialise the database and install business addons.

See also