Intercept trading-alert channels as messages land, archive every one in Postgres, and relay them into a server you control.
self-hosted · Docker · one command to start
Before you start: this reads channels using your own Discord user token, which is against Discord's Terms of Service and can get the account terminated. Use it only if you accept that. If a source channel is an Announcement channel, Discord's built-in Follow feature mirrors it into your server with no token and no risk; prefer that where you can.
A single live gateway connection feeds everything. Nothing polls, and the account never sends a message; forwarding goes through webhooks, so it stays read-only.
Alert channels in servers you're already a member of.
Holds the gateway connection, normalizes each message, edit, and delete.
Every message kept, deduplicated by ID. Deleted alerts are retained, not erased.
Forward matches to your server by webhook; browse the archive by API or dashboard.
You need Docker and just. A Discord account in the alert servers supplies the token.
One recipe copies the config templates and installs both toolchains.
git clone https://github.com/yorch/discord-message-resender.git
cd discord-message-resender
just setup
Read it from your logged-in session in a browser. It bypasses two-factor auth, so treat it like your password.
/api/v.Authorization header value, verbatim.
It has no Bearer or Bot prefix.Put the token, your webhook URLs, and an API token in .env; put the
source guild and channel IDs in config/routes.yaml. Then check the token.
just check-token # confirms it works, without printing it
Bring up the stack and watch alerts arrive.
just docker-up # start the stack
just docker-logs # follow the ingest logs
The archive is the point. Browse it visually, or query it from your own tools.
Open localhost:4000, paste your API token, and scan captured messages
with their embeds, images, and delivery status. Search, filter by channel, and see
deleted alerts struck through.
Pull alerts into your own scripts and backtests over HTTP.
curl -H "Authorization: Bearer $TOKEN" \
localhost:4000/alerts?limit=20