You are browsing as a guest. Sign up (or log in) to start making projects!

CyberPravoBot

  • 8 Devlogs
  • 9 Total hours

An asynchronous Telegram bot created to detect phishing, social engineering, and suspicious URLs.

Open comments for this post

36m 53s logged

Just updated the README once again and added a step-by-step production deployment guide. Also, the bot is now officially running 24/7 for everyone thanks to Nest! ❤

0
0
6
Open comments for this post

30m 13s logged

Today I’ve FINALLY completed my CI/CD auto-rebuild pipeline! Now, every single ‘git push’ to my public repositories triggers an instant automated update via a custom webhook system.

I really like visualizing my Linux directory structure as my own production-grade city, planning out neighborhoods and zones well in advance. As a result of this infrastructure layout, I now have 3 isolated Docker containers running flawlessly in my city:

  • SlackBot
  • TelegramBot
  • Webhook Listener

Instead of using bloated, heavy out-of-the-box CI/CD platforms that would easily choke my tiny 2GB RAM Nest server, I deployed a minimal ‘almir/webhook’ image weighing only 19.2 MB. Because of this, my idle server consumes ~300 MB of RAM and takes up a mere ~1.4 GB of disk space :D

It was an unforgettable engineering experience building my own free analog of PaaS platforms like Amvera etc., completely from scratch.

Thank you Hack Club for Nest <3

0
0
4
Open comments for this post

21m 15s logged

Today, I decided to set up automatic redeployment for my bots on my favorite Linux-based Nest server , triggering on every git push to their public GitHub repositories <3

0
0
3
Open comments for this post

2h 27m 43s logged

I lost a whole day trying to deploy my Telegram bot on Hack Club Nest. In the process, I found a ton of bugs, a broken OpenAI model from Groq 120B, and issues in my .env file (I literally had GROQ_AI_KEY instead of GROQ_API_KEY, lmao). But after a full day of fixes and guides, I finally managed to deploy my TG bot SIMULTANEOUSLY alongside the updated CyberShieldSlackBot (literally split VSCode terminal on photo) :D

0
0
3
Ship #1 Pending review

I'm a 16-year-old developer @egraich, and I made CyberPravoBot — an asynchronous Telegram bot that detects phishing links and social engineering scams in messages forwarded to it using LLMs and the VirusTotal API.

There is a backstory to this project. I originally built it for the republican cyber-security competition in Belarus called #КиберПраво (#CyberLaw). Unfortunately, due to a bureaucratic mess at the school level, my official application was lost, and the bot never even reached the jury, stripping me of the chance to fight for the grand prize. Instead of letting a production-ready Telegram bot sit in a private folder, I am releasing it to the world.

I finished writing the bot back in May. In early June, right after I found out my application was lost due to school bureaucracy, I decided to open-source the project. Then, just two days ago, I discovered StarDance and realized it was the perfect opportunity to show CyberPravoBot to a wider audience.

Because it was designed for a local contest, the UI and AI prompts are currently in Russian. However, I built it with a modular architecture to keep things flexible: all system messages, buttons, and system prompts are completely separated into a "config.py" file. If anyone wants to translate the entire bot to English, they can just change the strings in the config file within 5 minutes without touching the core code. You can also watch a video demo of the project in the README of the GitHub repository to see it in action.

Getting the smaller 17B model to behave consistently was a real headache. It kept hallucinating under loose instructions and sometimes randomly started outputting Chinese characters in its verdicts. I had to aggressively tighten the system prompts and lower the temperature to make it stable.

It was tricky to elegantly feed two completely different data sources into the AI at the same time. I had to combine the raw, unstructured user message with the structural data payload from the VirusTotal API scan without breaking the LLM's logical flow or confusing its instructions.

I'm really proud of how scalable the bot turned out. The entire bot is completely asynchronous from top to bottom. Thanks to this, it doesn't block the main thread, meaning that with a decent hosting environment, it can easily handle a massive influx of users.

  • 2 devlogs
  • 2h
Try project → See source code →
Open comments for this post

1h 27m 37s logged

Today I focused on backend optimization and infrastructure stability for CyberShield.
First, I fixed a performance bottleneck in the network layer. Instead of opening a new HTTP session for every single VirusTotal API call, the bot now initializes one global aiohttp.ClientSession at startup that manages connections inside the core event loop.
Second, I tackled container environment persistence. To stop the active AI model from resetting on server restarts, I designed and integrated a universal Key-Value system_settings database table. Now, admin configurations survive crashes and host redeployments.
Finally, polished the codebase with proper asynchronous documentation and strict error handling!

0
0
4

Followers

Loading…