Skip to content

cruftbox/wireburst

Repository files navigation

Wireburst

Wireburst

Wireburst monitors RSS/Atom feeds and posts new items into Discord, organized by category. Each feed gets its own dedicated text channel, grouped under a Discord category that matches your Wireburst categories. It turns Discord into an RSS reader — no separate app required.

  • Polls all feeds every 15 minutes with conditional GET (ETag / Last-Modified) to minimize bandwidth
  • Posts new items as rich embeds with title, full text, thumbnail, and source footer
  • Each feed gets its own Discord channel, nested under its category group
  • Managed from a local web admin panel and Discord slash commands
  • OPML import/export for bulk feed management
  • Categories and channels are created and moved automatically — no manual Discord setup needed

Requirements

  • Docker and Docker Compose
  • A Discord account with admin access to a server

Python is not required on your host — everything runs inside the container.


1. Create the Discord Bot

  1. Go to https://discord.com/developers/applications
  2. Click New Application and give it a name (e.g. "Wireburst")
  3. Go to the Bot tab
  4. Click Reset Token, copy the token — you'll need it in step 3 (Clone and Configure)
  5. Under Privileged Gateway Intents, no additional intents are required — leave them all off

2. Invite the Bot to Your Server

  1. Back on the Discord Developer Portal, open your application and go to OAuth2 → URL Generator
  2. Under Scopes, select: bot and applications.commands
    • Both are required. Omitting applications.commands causes slash commands to silently fail
  3. Under Bot Permissions, select:
    • Manage Channels (required — the bot creates and moves channels automatically)
    • Send Messages
    • Embed Links (required for rich embeds)
    • Attach Files (required for OPML export via /feed export)
    • View Channel
    • Use Application Commands
  4. Copy the generated URL, open it in a browser, and invite the bot to your server

Get your server ID

You'll need this for step 3 (Clone and Configure).

  1. In Discord, go to User Settings → Advanced and enable Developer Mode
  2. Right-click your server icon and choose Copy Server ID
  3. Save that number

3. Clone and Configure

git clone https://github.com/cruftbox/wireburst.git
cd wireburst
cp .env.example .env

Open .env and fill in your values:

DISCORD_TOKEN=your-bot-token-here
DISCORD_GUILD_ID=your-server-id-here
WEB_PORT=8080

4. Start Wireburst

docker compose up -d

The bot appears online in your server within a few seconds. Slash commands may take up to a minute to register on first launch — if they don't appear after 2 minutes, confirm you included both bot and applications.commands scopes in the invite URL.

On first run, Wireburst creates an Uncategorized channel group in Discord automatically.


Adding Categories and Feeds

Via the web panel

The web panel is available at http://localhost:8080 (or whatever WEB_PORT you set). It provides a table-based UI for managing feeds and categories:

  • Add feeds and categories
  • Bulk category assignment — change the category for multiple feeds at once, then click Save Category Changes to apply them all in one step
  • OPML import and export
  • Remove feeds and categories

⚠️ Security note: The web panel has no authentication. It is intended for use on a trusted local network only. Do not expose it to the public internet without adding a reverse proxy with authentication.

Via Discord slash commands

Create a category — Wireburst creates the Discord channel group automatically:

/category add Tech News
/category add Sports

Add feeds — each feed gets its own channel under the category, and the last 5 items are posted immediately:

/feed add https://hnrss.org/frontpage Tech News
/feed add https://feeds.bbci.co.uk/sport/rss.xml Sports

Bulk import via OPML — type /feed import in Discord and attach your .opml file. Feeds nested under OPML folders are assigned to matching categories; any missing categories are created automatically.


Updating Wireburst

After pulling new code or editing source files, rebuild and restart the container:

git pull
docker compose build
docker compose up -d

docker restart wireburst alone does not pick up code changes — you must rebuild the image.


Configuration Reference

Variable Description Default
DISCORD_TOKEN Bot token from the Developer Portal (required)
DISCORD_GUILD_ID Numeric server ID (required)
WEB_PORT Port for the web admin panel 8080

Slash Command Reference

Command Description
/feed add <url> [category] Add a feed; validates the URL, creates a Discord channel, and posts the last 5 items immediately
/feed remove <url> Remove a feed (Discord channel is left in place)
/feed move <url> <new_category> Move a feed to a different category; moves its Discord channel too
/feed list [category] List feeds with their channel, last-checked time, and failure count
/feed refresh Immediately poll all feeds outside the 15-minute schedule
/feed export Download all feeds as an OPML file
/feed import <file> Import feeds from an attached OPML file
/category add <name> Create a category and its Discord channel group
/category remove <name> Remove a category; its feeds are moved to Uncategorized
/category list List categories with Discord group and feed count
/last5 Repost the last 5 items from the feed in the current channel
/help Show all commands

How Discord Structure Works

Wireburst manages Discord structure automatically:

  • Each Wireburst category becomes a Discord channel group (category)
  • Each feed within a category gets its own text channel inside that group
  • When you move a feed to a different category (via web panel or /feed move), its Discord channel moves too — within a few seconds
  • When you delete a category, its feeds move to Uncategorized and the empty Discord channel group is deleted automatically

You can freely drag channels and groups to reorder them within Discord — Wireburst doesn't touch ordering.


Out of Scope (v1)

  • Full-article scraping (embeds use feed-native content only)
  • Per-user subscriptions
  • Digest/batched posting
  • Web panel authentication

License

MIT

About

RSS/Atom to Discord bot — each feed gets its own channel, organized by category

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors