Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

Repository files navigation

CTFRadar

A free Discord bot that tracks CTFtime events and sends configurable notifications to Discord.

Website · Add to Discord

Features

  • New and upcoming CTF events from CTFtime
  • 24-hour, 1-hour, started, and ending-soon reminders
  • Per-server channels, roles, filters, and message preferences
  • Interactive setup with slash commands, buttons, and select menus
  • Event search, autocomplete, calendar, status, and test notifications
  • Persistent SQLite settings and duplicate protection
  • One shared CTFtime cache and scheduler
  • Safe Discord mentions and permission validation

Requirements

  • Node.js 20 or newer
  • A Discord application and bot token

Installation

npm ci
cp .env.example .env

Add your Discord credentials to .env:

DISCORD_TOKEN=
DISCORD_CLIENT_ID=
DEVELOPMENT_GUILD_ID=
DATABASE_PATH=./data/ctftime-bot.sqlite
CTFTIME_CHECK_INTERVAL=*/10 * * * *
NODE_ENV=production
LOG_LEVEL=info

Deploy commands to a development server:

npm run deploy:guild

Start the bot:

npm start

Deploy commands globally when the bot is ready:

npm run deploy:global

Discord setup

Invite the bot, then run this command in the channel that should receive CTF notifications:

/set ctf notify

Use the interactive settings panel to choose notifications, filters, roles, and message content.

Disable notifications without deleting the saved settings:

/remove ctf notify

Commands

Command Description
/set ctf notify Enable notifications in the current channel
/remove ctf notify Disable notifications
/ctf settings Open the settings panel
/ctf active Show active events
/ctf upcoming Show upcoming events
/ctf next Show the next event
/ctf info Find an event by name or ID
/ctf calendar Show a 7-day or 30-day calendar
/ctf status Show the server notification status

Development

npm run dev
npm test
npm run check

The optional React landing page is in landing/:

cd landing
npm ci
npm run dev

Data

Runtime settings, cached events, ignored events, and notification history are stored in SQLite. The database and .env files are excluded from Git.

Support

This project is provided as-is. No support is offered.

Credits

CTFtime Website CTFtime on X CTFtime on Github

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages