YAML Configuration
Crewship can be configured via a YAML file passed at startup. Environment variables override YAML values. The config is loaded and validated ininternal/config/config.go.
The config file has twelve top-level sections:
server, ipc, container, storage, state, logging, auth, llm_proxy, keeper, license, composio, and local_models. The Complete Reference below shows every field with its default; Section Details explains the load-bearing ones.Loading Order
Complete Reference
Section Details
Server
shutdown_timeout controls how long the server waits for in-flight requests to complete during graceful shutdown. The server port must be between 1 and 65535.
Container
Provider options
Provider options
Kubernetes provider is on the v0.2 roadmap.
Runtime options
Runtime options
The
container_prefix is prepended to container names. For example, with container_prefix: "prod", a container would be named prod-team-engineering instead of crewship-team-engineering. Essential for multi-instance deployments.Storage
base_path stores crew workspace files, agent output, and persistent data. The log_path stores agent execution logs.
State
/var/lib/crewship/state.db default holds for a packaged install (the deb/rpm unit pins CREWSHIP_DATA_DIR=/var/lib/crewship). Point CREWSHIP_DATA_DIR anywhere else and the default becomes <dataDir>/state.db — the bbolt file is exclusively locked by one process, so instances that share a data root cannot share it. The IPC socket_path default follows the same rule.
Auth
LLM Proxy
Keeper
Minimal Configuration
As of PR #446, no env vars are required for first boot. Runcrewship start against an empty data directory and the server will:
- Listen on
0.0.0.0:8080 - Use Docker as container provider
- Store data in
~/.crewship(or$CREWSHIP_DATA_DIR) - Use BoltDB for state
- Auto-generate
ENCRYPTION_KEY,NEXTAUTH_SECRET, andCREWSHIP_INTERNAL_TOKENwithcrypto/rand, persisting them to<dataDir>/secrets.envat mode0600 - Auto-derive the NextJS URL from the listen port