Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

openclaw/hermit

Repository files navigation

Hermit (Cloudflare Worker)

Discord bot built with Carbon on Cloudflare Workers.

Stack

  • @buape/carbon
  • Cloudflare Workers (@buape/carbon/adapters/fetch)
  • Gateway forwarding: forwarder/ Bun process using GatewayForwarderPlugin
  • Cloudflare D1 + Drizzle ORM

Setup

  1. Install deps:
bun install
  1. Create .env from .env.example.

Required:

BASE_URL=
DEPLOY_SECRET=
DISCORD_CLIENT_ID=
DISCORD_PUBLIC_KEY=
DISCORD_BOT_TOKEN=

Optional:

DISCORD_DEV_GUILDS=
FORWARDER_PUBLIC_KEY=
ANSWER_OVERFLOW_API_KEY=
HELPER_THREAD_WELCOME_PARENT_ID=
HELPER_THREAD_WELCOME_TEMPLATE=
THREAD_LENGTH_CHECK_INTERVAL_HOURS=
  1. Configure wrangler.jsonc D1 binding:
  • set d1_databases[0].database_id to your real D1 database id
  • keep binding = "DB"
  1. Apply D1 migrations:
bun run db:apply:local
# or
bun run db:apply:remote
  1. Run locally:
bun run dev

Scripts

  • bun run devwrangler dev --env-file .env
  • bun run deploy → deploy worker locally with .env
  • bun run deploy:cf → apply remote D1 migrations, then deploy Worker for Cloudflare Builds
  • bun run deploy:dry-run → validate the Worker bundle without deploying
  • bun run cf-typegen → regenerate worker-configuration.d.ts
  • bun run typecheck → TypeScript check
  • bun run db:generate → generate Drizzle SQL
  • bun run db:apply:local / db:apply:remote → apply D1 migrations

CI/CD

Cloudflare Workers Builds deploys pushes to main. The deploy command should apply D1 migrations before deploying the Worker:

bun run deploy:cf

Drizzle only generates SQL migrations. Wrangler applies them to D1:

bun run db:generate
bun run db:apply:remote

Gateway forwarder

The main bot runs as a Cloudflare Worker. Gateway events are forwarded by the Bun app in forwarder/, usually running on Krill's machine.

Forwarder setup:

cd forwarder
bun install
bun run dev

Forwarder production start:

cd forwarder
bun run start

Forwarder env:

BASE_URL=
DEPLOY_SECRET=
DISCORD_CLIENT_ID=
DISCORD_PUBLIC_KEY=
DISCORD_BOT_TOKEN=
FORWARDER_PRIVATE_KEY=

The Worker must have the matching public key:

bunx wrangler secret put FORWARDER_PUBLIC_KEY

Notes

  • Answer Overflow base URL is hardcoded to https://www.answeroverflow.com.
  • Helper thread monitor runs via Worker cron (wrangler.jsonc triggers.crons).
  • The old Cloudflare Gateway Durable Object path is not the active gateway setup.

About

No description, website, or topics provided.

Resources

Security policy

Stars

Watchers

Forks

Sponsor this project

Contributors

AltStyle によって変換されたページ (->オリジナル) /