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.
duca-sentinel/
├── .husky/ # Git pre-commit hooks
│
├── dist/ # Compiled JavaScript output
│
├── emojis/ # Custom emoji assets
│
├── src/
│ ├── commands/ # Discord slash commands
│ ├── config/
│ ├── events/ # Discord event handlers
│ ├── lib/ # External libraries
│ ├── utils/ # Utility/helper functions
│ └── index.ts
│
├── .env # Environment variables
├── .env.exampple # Example environment variables
├── .gitattributes # Git config
├── .gitignore # Git ignore
├── .gitlab-ci.yml
├── .prettierrc # Prettier config
├── CONTRIBUTING.md
├── package-lock.json
├── package.json # Project metadata & dependencies
├── README.md
└── tsconfig.json # TypeScript configuration
- Node.js (v22 or higher)
-
Clone the repository
git clone https://github.com/duca-club/duca-sentinel.git cd duca-sentinel -
Install dependencies
npm install
-
Set up environment variables
Create a
.envfile in the root directory using the provided.env.exampletemplate:cp .env.example .env
Configure environment variables:
Variable Description Required DISCORD_TOKENYour Discord bot token ✅ GUILD_IDDiscord server ID ✅ DEV_ROLE_IDDeveloper role ID for dev commands ✅ MEMBER_ROLE_IDMember role ID (for verification) ✅ NEWS_CHANNEL_IDChannel ID for cyber news posts ❌ SUPABASE_URLSupabase project URL ❌ SUPABASE_ANON_KEYSupabase anonymous API key ❌ Note:
- If Supabase credentials are not provided, the following features will be disabled:
- Member verification (
/verify) - Event calendar (
/calendar)
- Member verification (
- If
NEWS_CHANNEL_IDis not provided, the cyber news posting feature will be disabled.
- If Supabase credentials are not provided, the following features will be disabled:
-
Build the project
npm run build
-
Start the bot
npm start
Please refer to the contribution guideline for more details.
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