CDA Monitor App

Complete documentation on to use the public version of the app and also how to self-host it

The CDA Monitor App is a powerful Discord moderation tool designed to help server administrators monitor and track messages containing specific keywords. It provides comprehensive logging, reporting, and alerting capabilities to help maintain server safety and compliance.

Installation

How to install the CDA Monitor App

You can install the public version of the CDA Monitor App by visiting this URL. After you have finished installing the app inside your server, you can come back here and read about the various features of the CDA Monitor App!

Notes

Additional notes about the CDA Monitor App.
  • The official wordlist.json file will remain private to keep the app's detection ability safe.
  • Server Administrators can choose to let another staff member control the public app, for this please contact the developer on Discord via DM at sinewave_

Features for Server Administrators

Setup and Configuration

/setup Command

Configure which channels the app should monitor in your server. Choose between monitoring all text channels or selecting specific ones, with an option to perform a historical scan of existing messages.

/reset Command

Remove all monitoring configurations for your server with a two-step verification process to prevent accidental resets.

Monitoring and Reporting

Automatic Scanning

The app automatically scans messages in monitored channels for keywords from its wordlist, checking both message content and embedded content.

CSV Logging

Messages containing flagged words are logged to server-specific CSV files with detailed information including message content, author details, timestamps, and channel information.

Data Access

/dump Command

Download a CSV file containing all flagged messages for your server, sent directly to your DMs for privacy. Includes comprehensive message data with two-step verification for security.

/info Command

View server-specific statistics including number of flagged messages, last scan date, number of monitored words, and number of monitored channels in an organized embed.

Support and Help

/help Command

Get a complete list of all available commands with descriptions in an easy-to-read embed format.

/support Command

Contact the app's developer directly for assistance through a guided modal interface. Includes server context to help troubleshoot issues.

Features for Self-Hosters

You can download the source code of the CDA Monitor App by visiting this section of the GitHub Repository.

Configuration Files

servers.json

Automatically tracks servers the app joins, storing server IDs, names, monitored channels, and inviter information.

    {
      "SERVER_NO_1": {
        "Guild ID": 1234567890123456789,
        "Server Name": "Example Server",
        "Member Count": 100,
        "Monitored Channels": [
          {
            "Channel ID": 9876543219876543210,
            "Channel Name": "log-channel"
          }
        ],
        "Inviter ID": "1234567890123456789"
      }
    }
wordlist.json

Contains the list of words/phrases to monitor. Customize this file to match your specific monitoring needs.

    {
      "words": [
        "malicious words",
        "are listed here",
        "this file will",
        "remain private",
        // Additional words...
      ]
    }
rich_presence.json

Configure custom status messages for the app with multiple presences that rotate at set intervals.

    {
      "timer_interval": 20,
      "message_sets": [
        {
          "name": "BOT_WATCHING",
          "details": {
            "text": "channels",
            "enabled": true
          },
          // Additional presences...
        }
      ]
    }
owner.json

Set the app owner's ID for support requests and system notifications. This should not be modified to maintain contact with the developer.

    {
      "owner_id": "212020258402205697"
    }
announcement.json

Tracks the last announcement sent to server inviters to prevent duplicate messages.

    {
      "date": "2025-03-21",
      "time": "14:35",
      "timezone": "GMT+2"
    }
announcement.md

Markdown file containing announcement content with YAML front matter for metadata.

---
    date: "2025-03-21"
    time: "14:35"
    timezone: "GMT+2"
    ---

    ## Announcement Test
    This is a test for the announcement system

Installation and Setup

1. Prerequisites

Python 3.8+ and a Discord app token from the Discord Developer Portal.

2. Install Dependencies

pip install -r requirements.txt

3. Configuration

Create a .env file with your Discord token and configure the JSON files as needed.

4. Running the App

python main.py

Key Features for Self-Hosters

Modular Cog System

Each feature is organized into separate cogs for easy maintenance and extension.

Rate Limiting

Built-in protection against Discord API rate limits with configurable safe limits.

Comprehensive Logging

Server-specific logging with daily log rotation and detailed event tracking.

Announcement System

Send updates to server inviters when announcements change, with automatic duplicate prevention.

Best Practices for Self-Hosting

  • Run the app in a secure environment with restricted access
  • Regularly back up your configuration files
  • Monitor the App's logs for any issues
  • Keep the app updated with the latest version
  • Respect Discord's Terms of Service and API guidelines
  • Do not modify the owner.json file to maintain support access
  • If you encounter any security flaw please contact me on Discord at sinewave_

Support

For additional help with using or self-hosting the app:
  • Refer to the project documentation: CDA Project Docs
  • Contact the developer through the /support command or via DM at sinewave_.
  • Open issues on the GitHub repository for technical problems

Planned features to be implemented

  • Automated live database updates and data validation.
  • User verification process for previously flagged users listed in the database.
  • Optional tools for moderation and prevention of malicious messages using existing data.
  • Simple web configurator page to make the setup process easier and faster.
  • More coming soon!

Important Links

Key resources and guidelines below