Configuration
HTTP host and port
Set the listen address and port with environment variables. Shipplane Lite reads them at startup:
Config file
On startup, Shipplane Lite looks for a config file matching:
If XDG_CONFIG_HOME is unset, it falls back to ~/.config/shipplane/. The first matching file (checked in the order .ts, .mjs, .js, .cjs) is loaded and merged over the defaults; the rest are ignored.
The file must default-export an object with this shape:
registry adds one TaskRegistry, built with @shipplane/core's createTaskRegistry(), to the two built-in task types. See Custom task types.
TypeScript example
Each workflows entry is plain WorkflowDefinition JSON. Build entries with @shipplane/core's workflow() builder to get type checking and autocomplete. Install core in the config directory:
~/.config/shipplane/lite.config.ts:
The config loader runs your .ts file with Node's built-in TypeScript support. Because no bundler resolves imports, relative imports need explicit extensions when you split the config across files. Use import { deploy } from "./workflows/deploy.ts", not "./workflows/deploy".
Workflow seeding
On every startup, Shipplane Lite inserts or updates the workflows in your config file, matching them by workflow id. This lets you keep workflow definitions in version-controlled config instead of creating them in the editor UI.
Seeding runs unless disabled — see --no-sync below.
Removing a workflow
The config file owns the workflows it seeds. Rename or delete a workflow id there and the old one is deleted from the database on the next startup, along with its run history.
Four things are never deleted by seeding:
- Workflows created in the editor UI or through the HTTP API.
- A workflow that is currently running.
- Anything at all, when
--no-syncis set. - Anything at all, when the config file is missing or defines no workflows. Lite cannot tell an intentionally empty config from an unreadable one, so it leaves the database alone. Delete those workflows in the UI instead.
Workflow limit
Shipplane Lite supports up to 10 workflows, including seeded ones. Re-seeding an existing id updates it without adding another workflow.
A config that seeds past the limit stops the server from starting, rather than skipping the extra workflow. Through the UI or HTTP API the same limit returns an error and the server keeps running.
CLI flags
The run, ls, logs, and registry subcommands act as clients of a running server instead of starting one. They read http.addr and http.port from the same config file. See the CLI.
http is replaced, not merged
Top-level config keys replace the corresponding defaults; nested values are not merged. Exporting only http: { port: 8080 } replaces the entire http object and leaves addr unset. Set addr and port together.