Installation — Discord
Prerequisites
Section titled “Prerequisites”- Bun >= 1.1 (or Docker)
- A Discord account
Step 1 — Create a Discord application and bot
Section titled “Step 1 — Create a Discord application and bot”- Go to the Discord Developer Portal and click New Application
- Give it a name (e.g. “Group Ride”) and confirm
- Go to the Bot tab and click Add Bot
- Under Token, click Reset Token and copy it — you will need it in Step 5
- Still on the Bot tab, enable Server Members Intent and Message Content Intent under Privileged Gateway Intents
Step 2 — Get the Client ID
Section titled “Step 2 — Get the Client ID”- Go to the OAuth2 tab
- Copy the Client ID
Step 3 — Create the required channels
Section titled “Step 3 — Create the required channels”group-ride requires two channels:
- An announcement text channel (e.g.
#announcements) — where ride announcements are posted - A Forum channel (e.g.
#rides) — where one thread is created per ride
To create the Forum channel: click + next to the channel list → Create Channel → select Forum.
Step 4 — Invite the bot and collect IDs
Section titled “Step 4 — Invite the bot and collect IDs”Invite the bot:
- In the Developer Portal, go to OAuth2 → URL Generator
- Under Scopes, check
botandapplications.commands - Under Bot Permissions, check:
- Manage Threads — create and archive forum threads
- Send Messages — post announcements and thread messages
- Read Message History — fetch the starter message for updates
- Attach Files — post route map images and weather forecast images
- Copy the generated URL and open it in your browser to invite the bot
Collect the IDs (enable Developer Mode in Discord Settings → Advanced → Developer Mode, then right-click to copy):
| Value | How to get it |
|---|---|
| Guild ID | Right-click the server name → Copy Server ID |
| Announcement channel ID | Right-click the channel → Copy Channel ID |
| Forum channel ID | Right-click the forum channel → Copy Channel ID |
Step 5 — Configure and run
Section titled “Step 5 — Configure and run”cp .env.example .env# Fill in your values — see Configurationbun installbun run startSee Configuration for all available variables.
Verify
Section titled “Verify”Type /newride in any channel. A modal should appear with fields for import URL, date & time, meeting point, stats, and notes.
Troubleshooting
Section titled “Troubleshooting”/newride command does not appear
Guild-scoped slash commands register immediately on startup. Make sure DISCORD_GUILD_ID matches the server where you’re typing the command.
Bot does not respond to member join/leave events The Server Members Intent must be enabled in the Developer Portal (Bot tab → Privileged Gateway Intents).
Bot doesn’t react to .gpx files posted in a ride thread
The Message Content Intent must be enabled in the Developer Portal (Bot tab → Privileged Gateway Intents) — without it, the bot can’t see message attachments.
Import URL not working
The activity must be public on the source platform. Komoot tours with a share_token in the URL work even if the tour is set to private.