f7c23fb325
Add ts-worker/ with the Bun/TypeScript worker that replaces claw-profile-worker. The Dockerfile now builds a single image containing both the Rust gateway (claw-telegram) and the TS worker. The image defaults to worker mode (bun run ts-worker/main.ts). The gateway Unraid XML overrides with --entrypoint claw-telegram. Worker containers use the same image with the default CMD. - Add ts-worker/ (12 files): HTTP/SSE server, Anthropic SDK engine, approval broker, event translator, state stores - Add package.json with @anthropic-ai/sdk dependency - Rewrite Dockerfile: three-stage build (Rust + Bun + runtime) - Revert CLAW_GATEWAY_WORKER_IMAGE to claw-telegram:latest - Remove image pull from docker_worker_manager (same image, already local) - Add ts-worker paths to CI trigger Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
42 lines
5.3 KiB
XML
42 lines
5.3 KiB
XML
<?xml version="1.0"?>
|
|
<Container version="2">
|
|
<Name>claw-telegram-gateway</Name>
|
|
<Repository>git.wylab.me/wylab/claw-telegram:latest</Repository>
|
|
<Registry>https://git.wylab.me</Registry>
|
|
<Network>claw_gateway</Network>
|
|
<MyIP/>
|
|
<Shell>sh</Shell>
|
|
<Privileged>false</Privileged>
|
|
<Support>https://git.wylab.me/wylab/claw-code-parity</Support>
|
|
<Project>https://git.wylab.me/wylab/claw-code-parity</Project>
|
|
<Overview>Claw Telegram gateway for the Rust gateway/worker deployment. This is the supported Unraid template. It owns the Telegram bot token, mounts the Docker socket, manages one worker container per profile, and writes worker templates into templates-user.</Overview>
|
|
<Category>Productivity: Tools:Utilities</Category>
|
|
<WebUI/>
|
|
<TemplateURL/>
|
|
<Icon>https://www.anthropic.com/favicon.ico</Icon>
|
|
<ExtraParams>--entrypoint claw-telegram</ExtraParams>
|
|
<PostArgs>gateway serve</PostArgs>
|
|
<CPUset/>
|
|
<DateInstalled/>
|
|
<DonateText/>
|
|
<DonateLink/>
|
|
<Requires>Docker socket access and either an Anthropic OAuth token or Anthropic API key</Requires>
|
|
<Config Name="Docker Socket" Target="/var/run/docker.sock" Default="/var/run/docker.sock" Mode="rw" Description="Docker socket for worker orchestration; this grants root-equivalent control of the host" Type="Path" Display="always" Required="true" Mask="false">/var/run/docker.sock</Config>
|
|
<Config Name="Unraid Templates" Target="/unraid/templates-user" Default="/boot/config/plugins/dockerMan/templates-user" Mode="rw" Description="Unraid template directory where the gateway writes managed worker templates" Type="Path" Display="always" Required="true" Mask="false">/boot/config/plugins/dockerMan/templates-user</Config>
|
|
<Config Name="Gateway AppData" Target="/appdata" Default="/mnt/user/appdata/claw-telegram-gateway" Mode="rw" Description="Gateway state and manifest directory" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/claw-telegram-gateway</Config>
|
|
<Config Name="Telegram Bot Token" Target="CLAW_GATEWAY_TELEGRAM_BOT_TOKEN" Default="" Mode="" Description="Telegram bot token used by the gateway ingress" Type="Variable" Display="always" Required="true" Mask="true"></Config>
|
|
<Config Name="Worker Auth Token" Target="CLAW_WORKER_AUTH_TOKEN" Default="" Mode="" Description="Shared bearer token for worker API calls" Type="Variable" Display="always" Required="true" Mask="true"></Config>
|
|
<Config Name="Worker Image" Target="CLAW_GATEWAY_WORKER_IMAGE" Default="git.wylab.me/wylab/claw-telegram:latest" Mode="" Description="Worker image pulled by the gateway for per-profile containers" Type="Variable" Display="always" Required="true" Mask="false">git.wylab.me/wylab/claw-telegram:latest</Config>
|
|
<Config Name="Gateway State Root" Target="CLAW_GATEWAY_STATE_ROOT" Default="/appdata/state" Mode="" Description="Gateway runtime state root for offsets and staged files" Type="Variable" Display="advanced" Required="true" Mask="false">/appdata/state</Config>
|
|
<Config Name="Gateway Manifest" Target="CLAW_GATEWAY_MANIFEST" Default="/appdata/profiles.json" Mode="" Description="Manifest path for channel identities and worker layout" Type="Variable" Display="advanced" Required="true" Mask="false">/appdata/profiles.json</Config>
|
|
<Config Name="Docker Socket Path" Target="CLAW_GATEWAY_DOCKER_SOCKET" Default="/var/run/docker.sock" Mode="" Description="Docker socket path inside the gateway container" Type="Variable" Display="advanced" Required="true" Mask="false">/var/run/docker.sock</Config>
|
|
<Config Name="Template Dir" Target="CLAW_GATEWAY_TEMPLATE_DIR" Default="/unraid/templates-user" Mode="" Description="Unraid template directory path inside the gateway container" Type="Variable" Display="advanced" Required="true" Mask="false">/unraid/templates-user</Config>
|
|
<Config Name="Template Archive Dir" Target="CLAW_GATEWAY_TEMPLATE_ARCHIVE_DIR" Default="/appdata/template-archive" Mode="" Description="Archive location for removed worker templates" Type="Variable" Display="advanced" Required="true" Mask="false">/appdata/template-archive</Config>
|
|
<Config Name="Worker Network" Target="CLAW_GATEWAY_WORKER_NETWORK" Default="claw_gateway" Mode="" Description="Docker network name shared by the gateway and workers" Type="Variable" Display="advanced" Required="true" Mask="false">claw_gateway</Config>
|
|
<Config Name="Inherited Env" Target="CLAW_GATEWAY_INHERITED_ENV" Default="ANTHROPIC_AUTH_TOKEN,ANTHROPIC_API_KEY" Mode="" Description="Comma-separated env vars copied from gateway into worker containers" Type="Variable" Display="advanced" Required="false" Mask="false">ANTHROPIC_AUTH_TOKEN,ANTHROPIC_API_KEY</Config>
|
|
<Config Name="Worker Ready Timeout (s)" Target="CLAW_GATEWAY_WORKER_READY_TIMEOUT_SECS" Default="15" Mode="" Description="Seconds to wait for a worker container to pass its health check" Type="Variable" Display="advanced" Required="false" Mask="false">15</Config>
|
|
<Config Name="Anthropic OAuth Token" Target="ANTHROPIC_AUTH_TOKEN" Default="" Mode="" Description="Claude subscription OAuth token (sk-ant-oat...) inherited by worker containers" Type="Variable" Display="always" Required="false" Mask="true"></Config>
|
|
<Config Name="Anthropic API Key" Target="ANTHROPIC_API_KEY" Default="" Mode="" Description="Anthropic API key inherited by worker containers for direct API access" Type="Variable" Display="always" Required="false" Mask="true"></Config>
|
|
<TailscaleStateDir/>
|
|
</Container>
|