Skip to content

duca-club/duca-sentinel

Repository files navigation

DUCA Sentinel

Version NodeJS

Official Discord bot for the Deakin University Cybersecurity Association (DUCA) Discord community server.
DUCA Sentinel provides member verification, utility commands, and entertainment features to enhance the server experience.

📂 Project Structure

duca-sentinel/
├── dist/                # Compiled JavaScript output
│
├── emojis/              # Custom emoji assets
│
├── src/
│   ├── app/
│   │   ├── commands/    # Slash commands (tsx uses CommandKit components)
│   │   ├── events/      # Discord event handlers
│   │   └── tasks/       # @commandkit/tasks schedules
│   ├── flags/           # Feature flag definitions
│   ├── lib/             # Supabase client, env config, news helpers
│   └── providers/       # Flag provider implementations
│
├── commandkit.config.ts
├── package.json
├── pnpm-lock.yaml
├── tsconfig.json
└── README.md

🚀 Getting Started

Prerequisites

  • Node.js v24+
  • pnpm
  • A Discord application + bot token
  • A Supabase project (database + service role key)

Installation

  1. Clone the repository

    git clone https://github.com/duca-club/duca-sentinel.git
    cd duca-sentinel
  2. Install dependencies

    pnpm install
  3. Set up environment variables

    Create a .env file in the root directory using the provided .env.example template:

    cp .env.example .env

    Configure environment variables:

    Variable Required Description
    DISCORD_TOKEN Discord bot token
    MEMBER_ROLE_ID Role ID assigned on successful verification
    NEWS_CHANNEL_ID Channel ID where news posts will be sent
    SUPABASE_URL Supabase project URL
    SUPABASE_SECRET_KEY Supabase service role key (server-side)
    NEWS_TIMEZONE Digest timezone (default Australia/Sydney)
    NEWS_DIGEST_CRON Digest schedule (default 0 9,17 * * *)
    NEWS_ALERT_CRON Alerts schedule (default 0 * * * *)
    NEWS_ALERT_KEYWORDS Comma-separated keywords (default critical,zero-day,zero day)

    Notes:

    • NEWS_FEED_URL is currently set in code to https://feeds.feedburner.com/TheHackersNews.
    • The alerts task runs in a fixed timezone (Asia/Kolkata) to align with the RSS feed timestamp behavior.
  4. Build the project

    pnpm run build
  5. Start the bot

    pnpm start

🤝 Contributing

Please refer to the contribution guideline for more details.

❤️ Acknowledgements

Developing this project is possible thanks to the following tools:

  • discord.js - Powerful Node.js module that allows interaction with the Discord API.
  • CommandKit - A discord.js handler for commands and events.
  • Supabase - Open-source Firebase alternative.

Made with ❤️ by dec1bel

About

Offiicial Discord bot for Deakin University Cybersecurity Association (DUCA)

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Contributors