{"id":27068068,"url":"https://github.com/koadt/cyber-bot","last_synced_at":"2026-02-22T01:36:00.218Z","repository":{"id":277241974,"uuid":"929476969","full_name":"kOaDT/cyber-bot","owner":"kOaDT","description":"Cyber Bot is an Node.js project that helps users improve their cybersecurity skills through scheduled Telegram messages.","archived":false,"fork":false,"pushed_at":"2026-02-06T15:22:49.000Z","size":1985,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2026-02-06T23:24:29.940Z","etag":null,"topics":["artificial-intelligence","cronjob","cybersecurity","hacking","javascript","mistral","nodejs","telegram-bot"],"latest_commit_sha":null,"homepage":"https://www.cyberhub.blog/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kOaDT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-08T16:33:23.000Z","updated_at":"2026-02-06T15:23:53.000Z","dependencies_parsed_at":"2025-02-28T19:32:28.438Z","dependency_job_id":"e95a234b-18c0-44bc-8743-82d8490d9f17","html_url":"https://github.com/kOaDT/cyber-bot","commit_stats":null,"previous_names":["koadt/cyber-bot"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/kOaDT/cyber-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kOaDT%2Fcyber-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kOaDT%2Fcyber-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kOaDT%2Fcyber-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kOaDT%2Fcyber-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kOaDT","download_url":"https://codeload.github.com/kOaDT/cyber-bot/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kOaDT%2Fcyber-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29703227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T23:35:04.139Z","status":"ssl_error","status_checked_at":"2026-02-21T23:35:03.832Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","cronjob","cybersecurity","hacking","javascript","mistral","nodejs","telegram-bot"],"created_at":"2025-04-05T20:17:58.977Z","updated_at":"2026-02-22T01:36:00.206Z","avatar_url":"https://github.com/kOaDT.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cyber Bot\n\n![Logo](./assets/logo.jpg)\n\n\u003cdiv align=\"center\"\u003e\n\n[![GitHub stars](https://img.shields.io/github/stars/kOaDT/cyber-bot?style=social)](https://github.com/kOaDT/cyber-bot/stargazers)\n[![GitHub forks](https://img.shields.io/github/forks/kOaDT/cyber-bot?style=social)](https://github.com/kOaDT/cyber-bot/network/members)\n\n[![Version](https://img.shields.io/badge/version-1.19.0-blue.svg)](https://github.com/kOaDT/cyber-bot/releases)\n[![Node.js](https://img.shields.io/badge/Node.js-18+-339933?logo=nodedotjs\u0026logoColor=white)](https://nodejs.org/)\n[![License: CC BY-NC 4.0](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc/4.0/)\n[![Telegram](https://img.shields.io/badge/Telegram-@bot__cyber__fr-2CA5E0?logo=telegram\u0026logoColor=white)](https://t.me/bot_cyber_fr)\n[![Mistral AI](https://img.shields.io/badge/Mistral%20AI-Powered-5A67D8?logo=ai\u0026logoColor=white)](https://mistral.ai/)\n[![Claude AI](https://img.shields.io/badge/Claude%20AI-Powered-D97706?logo=anthropic\u0026logoColor=white)](https://anthropic.com/)\n\n\u003c/div\u003e\n\n## About\n\nCyber Bot is a Node.js project that helps users enhance their cybersecurity skills through automated Telegram messages. The bot runs on a VPS (OVH) and leverages AI (Mistral or Claude) to generate cybersecurity-related content.\n\n### Community\n\n- Telegram: [@bot_cyber_fr](https://t.me/bot_cyber_fr)\n- Bluesky: [@calebpr.bsky.social](https://bsky.app/profile/cyberhub.blog)\n- Website: [www.cyberhub.blog](https://www.cyberhub.blog/)\n- Documentation: [koadt.github.io/cyber-bot](https://koadt.github.io/cyber-bot/)\n\n## Features\n\n### Daily TryHackMe Reminders\n\n```\nnpm run cron -- -c sendTHM\n```\n\n### TryHackMe Challenges\n\n```\nnpm run cron -- -c sendTHMCTF\n```\n\n### AI-Enhanced Study Notes\n\nSends curated notes from a GitHub repository, enhanced by AI.\n\n```\nnpm run cron -- -c sendGithubNotes\n```\n\n### Cybersecurity News Digest\n\nAggregates and summarizes news from our [curated RSS feed](https://raw.githubusercontent.com/kOaDT/cyber-bot/refs/heads/develop/assets/CyberSecurityRSS.opml).\n\n```\nnpm run cron -- -c sendNewsResume\n```\n\n### CVE Updates\n\nFetches and analyzes the latest CVE (Common Vulnerabilities and Exposures) entries.\n\n```\nnpm run cron -- -c sendCve\n```\n\n\u003e Using https://nvd.nist.gov/developers/vulnerabilities\n\n### Darknet Diaries Podcast Summaries\n\nProvides summaries of the latest [Darknet Diaries](https://darknetdiaries.com/) podcast episodes.\n\n```\nnpm run cron -- -c sendDarknetDiariesResume\n```\n\n### Snyk Podcast Summaries\n\nProvides summaries of the latest [Snyk](https://snyk.io/fr/podcasts/the-secure-developer/) podcast episodes.\n\n```\nnpm run cron -- -c sendSnykResume\n```\n\n### Security Now Podcast Summaries\n\nProvides summaries of the latest [Security Now](https://twit.tv/shows/security-now) podcast episodes.\n\n```\nnpm run cron -- -c sendSecurityNowResume\n```\n\n### The Cyber Show Podcast Summaries\n\nProvides summaries of the latest [The Cyber Show](https://cybershow.uk/episodes.php) podcast episodes.\n\n```\nnpm run cron -- -c sendCyberShowResume\n```\n\n### Reddit Content\n\nFetches and summarizes posts from specified cybersecurity subreddit.\n\n```\nnpm run cron -- -c sendRedditPost\n```\n\n### YouTube Content\n\nSummarizes the latest videos from specified channels.\n\n```\nnpm run cron -- -c sendYoutubeResume -y https://www.youtube.com/[channel-name]\n```\n\n#### Curated Shorts\n\nShares relevant short-form videos based on customizable parameters (search period, queries, and blacklisted terms). Configure settings in the `sendShort.js` script.\n\n```\nnpm run cron -- -c sendShort\n```\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n- Telegram Bot Token ([BotFather](https://t.me/BotFather))\n- AI Provider API Key: [Mistral AI](https://mistral.ai/) or [Claude (Anthropic)](https://console.anthropic.com/)\n- VPS (recommended)\n\n### Installation\n\n1. **Clone and Initialize**\n\n```sh\ngit clone git@github.com:kOaDT/cyber-bot.git\ncd cyber-bot\n\n# Create tracking files\nmkdir -p assets\ntouch assets/processedNotes.json       # GithubNotes tracking\ntouch assets/processedArticles.json    # News tracking\ntouch assets/processedShorts.json      # Shorts tracking\ntouch assets/processedDD.json          # Darknet Diaries Podcast tracking\ntouch assets/processedSnyk.json        # Snyk Podcast tracking\ntouch assets/processedYt.json          # YouTube tracking\ntouch assets/processedReddit.json      # Reddit post tracking\ntouch assets/processedCTF.json         # CTF tracking\ntouch assets/processedSecurityNow.json # Security Now Podcast tracking\ntouch assets/processedCyberShow.json   # The Cyber Show Podcast tracking\n```\n\n2. **Install Dependencies**\n\n```sh\nnpm install\n```\n\n3. **Configure Environment**\n\nCreate a `.env` file with the following variables:\n\n```env\n# GitHub Settings\nGITHUB_SECRET=\nGITHUB_USERNAME=\nGITHUB_REPO=\n# Optional\nEXCLUDED_GITHUB_FILES=\n\n# Telegram Settings\nTELEGRAM_BOT_TOKEN=\nCHAT_ID=\n# Optional Topic IDs for message organization\nTELEGRAM_TOPIC_THM=\nTELEGRAM_TOPIC_NEWS=\nTELEGRAM_TOPIC_YOUTUBE=\nTELEGRAM_TOPIC_PODCAST=\nTELEGRAM_TOPIC_GITHUB=\nTELEGRAM_TOPIC_REDDIT=\nTELEGRAM_TOPIC_CVE=\n\n# AI Provider Settings\nAI_PROVIDER=mistral            # Choose: 'mistral' (default) or 'claude'\n\n# Mistral AI Settings (required if AI_PROVIDER=mistral)\nMISTRAL_API_KEY=\n# Optional Mistral parameters\nMISTRAL_MODEL=mistral-large-2411\nMISTRAL_TEMPERATURE=0.1\nMISTRAL_MAX_TOKENS=2000\n\n# Claude AI Settings (required if AI_PROVIDER=claude)\nCLAUDE_API_KEY=\n# Optional Claude parameters\nCLAUDE_MODEL=claude-opus-4-20250514\nCLAUDE_TEMPERATURE=0.1\nCLAUDE_MAX_TOKENS=2000\n\n# Optional, comma-separated\nAUTHORIZED_LANGUAGES=\n\n# AssemblyAI - Text-to-Speech\nASSEMBLYAI_API_KEY=\n\n# YouTube Settings\nYOUTUBE_API_KEY=\n\n# Reddit\nREDDIT_SUBREDDITS=\nREDDIT_DAYS_LOOKBACK=\nREDDIT_CLIENT_ID=\nREDDIT_CLIENT_SECRET=\n\n# CVE\nCVSS_SEVERITY_THRESHOLD=   # Default \u003e= 7.0\nHOURS_DELAY=               # Default 24 hours\nENABLE_CVE_STATS=false     # Enable historical stats (requires Cve table in DB)\n\n# Optional Database Settings\nMYSQL_HOST=\nMYSQL_USER=\nMYSQL_PASSWORD=\nMYSQL_DATABASE=\nI_WANT_TO_SAVE_MESSAGES_IN_DB=true # Enable message logging in database\n\n# Optional Slack Logging\nSLACK_LOGGING_ENABLED=false # Set to true to enable Slack log forwarding\nSLACK_WEBHOOK_URL_INFO=     # Webhook URL for info level logs\nSLACK_WEBHOOK_URL_WARN=     # Webhook URL for warn level logs\nSLACK_WEBHOOK_URL_ERROR=    # Webhook URL for error level logs\n```\n\n\u003e **Note:** This project is designed to work without a database by default. However, you can enable message logging in a MySQL database by setting `I_WANT_TO_SAVE_MESSAGES_IN_DB=true` and configuring the database connection variables defined in `/config/dbConfig.js`. The database should contain a `TelegramLogs` table with at least two columns: `message` and `dateAdd`. This feature uses the `mysql2` package.\n\n\u003e **Note:** CVE statistics (historical trends, year-over-year comparisons) require a `Cve` table in your database with columns: `cveId`, `cvss`, `published`. Set `ENABLE_CVE_STATS=true` to enable this feature. Without it, the CVE report shows only the daily summary.\n\n\u003e **Note:** Slack logging is optional and disabled by default. To enable it, set `SLACK_LOGGING_ENABLED=true` and provide the appropriate webhook URLs for each log level (info, warn, error). If a webhook URL is missing for a specific level, logs of that level will still be logged locally but won't be sent to Slack. Slack webhook failures are handled gracefully and won't affect the application's operation.\n\n4. **Optional: Customize AI provider parameters**\n\n```\n/crons/config/providers/mistral.js  # Mistral configuration\n/crons/config/providers/claude.js   # Claude configuration\n```\n\n5. **Optional: Modify bot prompts**\n\n```\n/crons/utils/prompts\n```\n\n## Usage\n\n### Basic Command\n\n```sh\nnpm run cron -- -c \u003cCRON_NAME\u003e\n```\n\n### With Language Specification\n\n```sh\nnpm run cron -- -c \u003cCRON_NAME\u003e -l \u003clanguage\u003e\n```\n\n\u003e **Note:** Content language is restricted by the `AUTHORIZED_LANGUAGES` environment variable to avoid prompt injection. Default is English.\n\n## Documentation\n\nFor VPS deployment guidance, check our [deployment guide](https://koadt.vercel.app/blog/deploy-your-own-cron-jobs-server-on-a-vps-in-9-simple-steps/).\n\n## Contributing\n\nWe welcome contributions! Feel free to:\n\n- Report issues\n- Submit pull requests\n- Suggest new features\n\n## License\n\nThis project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).\n\nThis means you are free to share and adapt this work for non-commercial purposes, as long as you provide appropriate attribution. More information: [LICENSE](./LICENSE)\n\n[![License: CC BY-NC 4.0](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc/4.0/)\n\n---\n\n\u003cdiv align=\"center\"\u003e\nMade by \u003ca href=\"https://github.com/kOaDT\"\u003ekOaDT\u003c/a\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoadt%2Fcyber-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkoadt%2Fcyber-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoadt%2Fcyber-bot/lists"}