Files
clawmates/deploy/compose/.env.example
T
Omar SobhandClaude Opus 4.8 e8486ee57c
ci / gates (push) Has been cancelled
ci / rust (push) Has been cancelled
ci / sandbox-k8s (push) Has been cancelled
ci / frontend (push) Has been cancelled
ci / e2e (push) Has been cancelled
Door delivery: outbox drainer + SMTP transport (inert until configured)
The §15 door's email_send queues to `outbox` but nothing delivered it. Add a
real transport: cm-db outbox repo (list_queued/mark_sent/mark_failed) + a
cm-runtime drainer — an EmailSender trait (testable), a lettre STARTTLS
LettreSender, drain_once (queued -> sent/failed), and spawn_drainer wired into
the server beside the scheduler/sweeper/topology-worker.

Config-gated: inert (logs "outbox delivery DISABLED") until CLAWMATES_SMTP_*
is set, so it ships safely before credentials exist. The agent never holds the
SMTP credential — it only writes to outbox through the gated door; the server
owns the transport.

NOTE: live delivery is still credential-blocked — Migadu's API can't send
(SMTP-only) and the admin token is invalid; no SMTP creds exist. The transport
is built + tested (drain_marks_sent_and_failed via a mock sender); set
CLAWMATES_SMTP_* to go live with zero further code. clippy clean.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-18 03:22:27 -07:00

48 lines
2.3 KiB
Bash

# Copy to .env and set real values before `docker compose up`.
# These are overlaid onto clawmates.toml at runtime (CLAWMATES_* env wins).
# --- Required ---------------------------------------------------------------
# Postgres superuser password (also used in the server/broker DSN).
POSTGRES_PASSWORD=change-me
# Image tag to run. `latest` after a local `docker compose build`, or the
# release version (e.g. 0.1.0) when installing from a signed bundle.
CLAWMATES_VERSION=latest
# --- First-owner bootstrap (local auth) -------------------------------------
# A fresh install has no users and no public signup. Set a password here and
# the server provisions this Owner + workspace ONCE on first boot, then never
# again (safe to leave set across restarts). Remove/blank to disable.
CLAWMATES_BOOTSTRAP_OWNER_EMAIL=[email protected]
CLAWMATES_BOOTSTRAP_OWNER_PASSWORD=
CLAWMATES_BOOTSTRAP_WORKSPACE=My Workspace
CLAWMATES_BOOTSTRAP_CREDITS=1250
# --- LLM --------------------------------------------------------------------
# Default config (clawmates.toml) uses an OpenAI-compatible endpoint at
# http://local-llm:8000/v1 — point base_url at your vLLM/Ollama/llama.cpp.
# To use Anthropic instead, set llm.provider = "anthropic" in clawmates.toml
# and provide the key here (uncomment):
# ANTHROPIC_API_KEY=sk-ant-...
# --- Auth mode (optional) ---------------------------------------------------
# clawmates.toml defaults to mode = "local". For Clerk, set mode = "clerk"
# and auth.issuer_url there, then supply the frontend keys (see docs/clerk.md):
# AUTH_MODE=clerk
# CLERK_PUBLISHABLE_KEY=pk_live_...
# CLERK_SECRET_KEY=sk_live_...
# --- Observability (optional) -----------------------------------------------
# Export traces to an OTLP/HTTP collector. Unset = logs only, no network.
# CLAWMATES_TELEMETRY__OTLP_ENDPOINT=http://otel-collector:4318
# --- Outbound email delivery (optional) -------------------------------------
# The §15 door's email_send queues to `outbox`; the server's drainer delivers
# over SMTP when these are set (otherwise it logs "outbox delivery DISABLED"
# and rows stay queued). Use an SMTP submission account (host + app password).
# CLAWMATES_SMTP_HOST=smtp.migadu.com
# CLAWMATES_SMTP_PORT=587
# [email protected]
# CLAWMATES_SMTP_PASS=<smtp app password>
# [email protected]