Configure DM
DM ships defaults for ordinary use. Change the relevant setting explicitly when your host, callback, or backend needs different behavior.
Local state and profiles
| Setting | Default | Purpose |
|---|---|---|
SILICON_HOME |
OS home | Parent for .silicon-dm private state |
dm config home LOCATION |
Unset | Persist a different existing home directory |
--profile NAME |
Selected default | Independent account session |
--test UUID / SILICON_DM_TEST |
Production | Previously saved sandbox |
--app-secret-file FILE / DM_TEST_APP_SECRET |
Unset | Automatic IAM test environment selection |
ISI |
Unset | Optional Silicon routing identity |
DM_API_URL |
Production DM backend | Backend for login and automatic sandbox selection |
--wait-seconds |
30 | Foreground wait; timeout keeps durable work queued |
Keep state on a durable local disk. It includes credentials and SQLite queues; use one daemon per state directory. Normal installation uses one shared directory and one backend connection for all profiles. Independent directories intentionally have independent runtimes.
Callback delivery
dm webhook URL attaches the selected profile. --secret-file FILE adds an
optional bearer secret stored privately. Callback responses must acknowledge the
matching delivery ID. dm unhook detaches delivery without deleting queued events.
Use test callback URLs for sandbox integrations. HTTPS is required except for
local loopback callback addresses.
Updates
Automatic updates are on. The daemon claims a check once per hour even when no
CLI command runs. It checks the stable crates.io CLI release and installs a newer
version with Cargo. Only the installed Cargo bin/dm is replaced; custom and
development builds are reported as such. Registry/build failures leave the old
binary available and are retried later.
dm updates status
dm updates disable
dm updates enable
dm updates check
dm updates install
The running daemon uses its loaded code until restarted; queues persist. Restart with the installed binary after an update. The standalone Rust library cannot replace code already linked into a process; its optional update policy updates an explicitly selected application manifest and rebuilds it.
Backend configuration
See .env.example and deployment for database, testing database,
IAM, Giphy, body-size, connection pool, timeout, and worker settings. The testing
database must differ from production, and the encryption key must stay stable
across replicas. Attachments are external links; no upload credentials are required.
No Space Station SDK, telemetry exporter, or analytics integration is installed by this change.
Bug report notifications
Set DM_POSTMARK_SERVER_TOKEN on the API service to enable report submissions.
The default DM_POSTMARK_EMAIL_URL is https://api.postmarkapp.com/email.
Verify dm@teamofsilicons.com as a Postmark sender. Reports notify
saketdev12@gmail.com, shubhastro2@gmails.com, and bugs@teamofsilicons.com,
matching the product specification. Each authenticated actor may submit ten new
reports per hour. Retries with the same idempotency key do not create another report.
The API returns 202 after the report is durable. Its worker retries Postmark
failures with backoff, up to an hour between attempts. A process crash after
Postmark accepts but before the transaction commits can deliver a duplicate
notification; the report ID identifies it. Sandbox reports are immediately marked
simulated and never enter the production notification transport. No mail token
is distributed in the SDK or CLI. See the Postmark email API.