A combined Discord presence (Lanyard-style) and profile/badges (dstn.to-style) API on a single Cloudflare Worker + Durable Object, powered by one Discord bot. It exposes a REST endpoint and a Lanyard-compatible WebSocket, returning a single unified JSON shape.
Go to file
Clove cae2a37783 meow 2026-06-19 15:00:54 +01:00
src meow 2026-06-19 15:00:54 +01:00
.dev.vars.example first commit 2026-06-18 21:39:44 +01:00
.gitignore first commit 2026-06-18 21:39:44 +01:00
README.md first commit 2026-06-18 21:39:44 +01:00
package.json meow 2026-06-19 15:00:54 +01:00
pnpm-lock.yaml meow 2026-06-19 15:00:54 +01:00
pnpm-workspace.yaml first commit 2026-06-18 21:39:44 +01:00
tsconfig.json first commit 2026-06-18 21:39:44 +01:00
wrangler.jsonc fixes 2026-06-18 23:13:33 +01:00

README.md

dough-restful

A combined Discord presence (Lanyard-style) and profile/badges (dstn.to-style) API on a single Cloudflare Worker + Durable Object, powered by one Discord bot. It exposes a REST endpoint and a Lanyard-compatible WebSocket, returning a single unified JSON shape.

Setup

1. Create the bot

  1. https://discord.com/developers/applicationsNew ApplicationBot.
  2. Reset Token, copy it (this is DISCORD_BOT_TOKEN).
  3. Under Privileged Gateway Intents, enable PRESENCE INTENT and SERVER MEMBERS INTENT.
  4. Invite the bot to a server that contains the people you want to track (OAuth2 URL generator → scope bot). Presence is only visible for users sharing a server with the bot — same model as Lanyard.

2. Configure Cloudflare

pnpm install

# KV namespace for profile cache — paste the printed id into wrangler.jsonc
pnpx wrangler kv namespace create PROFILE_CACHE

# Secrets
pnpx wrangler secret put DISCORD_BOT_TOKEN
# Optional, ToS risk — only if you want the rich badges:
pnpx wrangler secret put DISCORD_USER_TOKEN

Optionally set TRACKED_GUILD_IDS in wrangler.jsonc (comma-separated) to limit monitoring to specific servers; empty = every guild the bot can see.

3. Run / deploy

# Local: copy .dev.vars.example -> .dev.vars and fill in tokens
pnpx wrangler dev

# Production
pnpx wrangler deploy