<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dendi Prayogo Hidayat</title>
    <description>The latest articles on DEV Community by Dendi Prayogo Hidayat (@xdendix).</description>
    <link>https://dev.to/xdendix</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F726362%2F8c006c90-e5f9-4d09-84fa-c8ff3edee4c3.png</url>
      <title>DEV Community: Dendi Prayogo Hidayat</title>
      <link>https://dev.to/xdendix</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xdendix"/>
    <language>en</language>
    <item>
      <title>Building a Zero-Cost, NDA-Compliant Security Report Generator with Local Gemma 2B.</title>
      <dc:creator>Dendi Prayogo Hidayat</dc:creator>
      <pubDate>Tue, 13 Oct 2026 10:48:51 +0000</pubDate>
      <link>https://dev.to/xdendix/building-a-zero-cost-nda-compliant-security-report-generator-with-local-gemma-2b-1l7g</link>
      <guid>https://dev.to/xdendix/building-a-zero-cost-nda-compliant-security-report-generator-with-local-gemma-2b-1l7g</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;As a cybersecurity freelancer on platforms like Fastwork, running vulnerability scans (like Nmap) on a client's infrastructure is the easy part. The real bottleneck is the unbillable hours spent translating raw, technical terminal logs into a professional, easy-to-understand Executive Summary PDF that business owners are actually willing to pay for.&lt;/p&gt;

&lt;p&gt;I built the &lt;strong&gt;Local SecOps Reporter&lt;/strong&gt;, an automated Command Line Interface (CLI) pipeline that solves this problem. It orchestrates live Nmap scans, streams the output in real-time, analyzes the vulnerabilities, and instantly exports a beautifully formatted, branded PDF report ready to be invoiced to the client. &lt;/p&gt;

&lt;p&gt;The target market? Fellow penetration testers, bug bounty hunters, and freelance security consultants who want to automate their reporting workflow without compromising client data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;*If the video doesn't load, please refresh the website.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu9kbyxbnonwkyprrvpci.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu9kbyxbnonwkyprrvpci.png" alt="report" width="800" height="958"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/xdendix" rel="noopener noreferrer"&gt;
        xdendix
      &lt;/a&gt; / &lt;a href="https://github.com/xdendix/local-secops-reporter" rel="noopener noreferrer"&gt;
        local-secops-reporter
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Local SecOps Reporter&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;An AI-powered, completely offline Command Line Interface (CLI) tool designed for Cybersecurity Freelancers and Penetration Testers. It automates the process of running Nmap scans and generating professional, client-ready Executive Summary PDFs using a local LLM.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Built for the Hacktoberfest 2026 "Side Hustle" Challenge.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why This Exists (The Side Hustle)&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;As a cybersecurity consultant, scanning a client's infrastructure is fast, but writing the report takes hours. However, feeding sensitive client infrastructure data (like vulnerable open ports) into third-party APIs like ChatGPT is a massive breach of Data Privacy and Non-Disclosure Agreements (NDAs).&lt;/p&gt;
&lt;p&gt;This tool solves that by utilizing Google's &lt;strong&gt;Gemma 2B&lt;/strong&gt; open-weight model running 100% locally on your machine.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Absolute Data Privacy:&lt;/strong&gt; Zero data leaves your laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Cost:&lt;/strong&gt; $0 API costs, maximizing freelance profit margins.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Client Ready:&lt;/strong&gt; Automatically converts the AI output into a beautifully formatted PDF with customized agency branding.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;End-to-End Automation:&lt;/strong&gt; Runs Nmap, captures…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/xdendix/local-secops-reporter" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;This tool is built completely around open-source AI and runs 100% locally on my Ubuntu machine. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;The AI Engine:&lt;/strong&gt; I used Google's open-weight &lt;strong&gt;Gemma 2B&lt;/strong&gt; model running locally via &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The Pipeline:&lt;/strong&gt; Written in Python, utilizing &lt;code&gt;subprocess&lt;/code&gt; to stream live Nmap scanning data directly into the system's memory.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The Prompt Engineering:&lt;/strong&gt; The Gemma model is guided by a strict System Prompt to act as a Senior Security Analyst, preventing hallucinations and formatting the output strictly as a Markdown table.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The Polish:&lt;/strong&gt; I used the &lt;code&gt;rich&lt;/code&gt; library for a beautiful terminal UI (with loading spinners) and &lt;code&gt;markdown-pdf&lt;/code&gt; to automatically convert the AI's Markdown output into a client-ready PDF equipped with dynamic CLI-injected branding (e.g., &lt;code&gt;--client "Acme Corp"&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;For this specific side hustle, open innovation isn't just a "nice to have"—it is a &lt;strong&gt;legal requirement&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;When auditing client infrastructure, revealing their exposed ports, IP addresses, and vulnerable software versions to a third-party, closed-source API (like OpenAI) is a massive breach of Data Privacy and Non-Disclosure Agreements (NDAs). &lt;/p&gt;

&lt;p&gt;By utilizing an open-weight model like Gemma running entirely offline on my local machine:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Absolute Data Privacy:&lt;/strong&gt; My clients' sensitive infrastructure data never leaves my laptop. It is 100% NDA compliant.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Zero Cost Economics:&lt;/strong&gt; Running inference locally means I pay $0 in API fees, which turns the time saved on reporting into a 100% profit margin for my side hustle.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Closed APIs would have made this business model legally and financially unviable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;I am submitting this project for the following category:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; The project heavily relies on Google's Gemma model running locally to perform the heavy lifting of security log analysis and report generation.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>gemma</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>Less Screen, More Green: Meet EcoTrace AI</title>
      <dc:creator>Dendi Prayogo Hidayat</dc:creator>
      <pubDate>Sat, 10 Oct 2026 08:58:53 +0000</pubDate>
      <link>https://dev.to/xdendix/less-screen-more-green-meet-ecotrace-ai-42c6</link>
      <guid>https://dev.to/xdendix/less-screen-more-green-meet-ecotrace-ai-42c6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-10"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What I Built&lt;br&gt;
EcoTrace AI is a nature guide on Telegram, designed to help people spend less time looking at their screens and more time noticing the world around them.&lt;/p&gt;

&lt;p&gt;When you spot an unfamiliar plant, animal, or track outdoors, you can describe it or send a photo. EcoTrace AI returns a concise field guide with a likely identification, an explanation of its uncertainty, and practical safety advice.&lt;/p&gt;

&lt;p&gt;The experience is intentionally simple: ask a question, get a useful starting point, then put your phone away and keep exploring. It is for curious hikers, families, students, and anyone who wants to learn more about a nature encounter without treating AI as an authority.&lt;/p&gt;

&lt;p&gt;For photo questions, EcoTrace AI uses a two-step vision-to-text workflow: Moondream describes visible details, then Gemma uses that description and your question to create the guide. Text-only questions go directly to Gemma.&lt;/p&gt;

&lt;p&gt;Safety is part of the design. The guide is instructed not to overstate species-level identifications or recommend touching or eating unfamiliar wild organisms. Its answers are suggestions—not a substitute for a local expert.&lt;/p&gt;

&lt;p&gt;Demo&lt;br&gt;
*Refresh if the video doesn’t appear&lt;/p&gt;





&lt;p&gt;A good demo could show both paths: asking about a nature observation in text, then sending a photo with a question.&lt;/p&gt;

&lt;p&gt;Code&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/xdendix" rel="noopener noreferrer"&gt;
        xdendix
      &lt;/a&gt; / &lt;a href="https://github.com/xdendix/ecotraceai" rel="noopener noreferrer"&gt;
        ecotraceai
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;EcoTrace AI&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;EcoTrace AI is a Telegram nature guide for people who are already outdoors. Describe
something you found or send a photo, get a cautious identification with practical
safety advice, and get back to exploring. It can help with plants, animals, tracks
and other nature observations.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Touch Grass challenge&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;The goal is to make the screen the shortest part of a nature encounter: ask a
question or take a photo, read a concise field guide, then put the phone away.
EcoTrace AI supports both quick text descriptions and photo-based observations.
It asks the model to explain uncertainty, avoid unsupported species-level claims,
and never suggest touching or eating an unfamiliar wild organism.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Why open AI&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;The core inference runs locally through &lt;a href="https://ollama.com/" rel="nofollow noopener noreferrer"&gt;Ollama&lt;/a&gt; using
open-weight models. For a photo, Moondream describes visible details and Gemma
uses that description and the user's question to produce the guide. For text-only
questions, Gemma responds…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/xdendix/ecotraceai" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;How I Built It&lt;br&gt;
EcoTrace AI is built in Python as an asynchronous Telegram bot using python-telegram-bot. The bot handles /start, menu navigation, text questions, and photo messages.&lt;/p&gt;

&lt;p&gt;The AI inference runs locally through Ollama:&lt;/p&gt;

&lt;p&gt;Text: Gemma (gemma2:2b by default) generates a concise nature guide from the user’s description.&lt;br&gt;
Photos: Moondream describes visible features without naming the subject; Gemma then uses those observations and the user’s question to write the final answer.&lt;br&gt;
This separation gives each model a focused role: one describes what is visible, while the other turns that description into a cautious, useful response. The text model can be changed through the DEFAULT_MODEL environment variable.&lt;/p&gt;

&lt;p&gt;Photo files are downloaded temporarily for analysis and removed afterward. Local inference does not mean the entire app works offline: Telegram still needs an internet connection to deliver messages. Sentry can also be enabled for error reporting and tracing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5ggzyeioishkeausr6bx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5ggzyeioishkeausr6bx.png" alt="Sentry" width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why Does Open Innovation Matter?&lt;br&gt;
Open innovation makes this project’s most important choice possible: running AI inference on a machine the user controls instead of sending prompts and photos to an external AI inference API.&lt;/p&gt;

&lt;p&gt;With open-weight models and Ollama, the model setup and guiding instructions can be inspected, changed, and adapted. The two-model workflow is also easy to experiment with: developers can swap the text model or vision model and see how those choices affect the experience.&lt;/p&gt;

&lt;p&gt;That flexibility matters for a nature guide. Its job is not just to produce a confident-sounding answer; it should communicate uncertainty and encourage safer decisions outdoors. Open tools make those behaviors easier to examine and improve.&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;br&gt;
Best Use of Gemma&lt;br&gt;
Best Use of Sentry Agent Tracing&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>telegram</category>
    </item>
    <item>
      <title>Why open a laptop when you can run recon from your phone? For this MLH Hackathon, I built an asynchronous Telegram bot using Python to automate web security audits. Try it out and let me know what you think!</title>
      <dc:creator>Dendi Prayogo Hidayat</dc:creator>
      <pubDate>Mon, 05 Oct 2026 15:17:07 +0000</pubDate>
      <link>https://dev.to/xdendix/why-open-a-laptop-when-you-can-run-recon-from-your-phone-for-this-mlh-hackathon-i-built-an-5ai5</link>
      <guid>https://dev.to/xdendix/why-open-a-laptop-when-you-can-run-recon-from-your-phone-for-this-mlh-hackathon-i-built-an-5ai5</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064" class="crayons-story__hidden-navigation-link"&gt;Building SecOps Recon Bot: Enterprise-Grade Web Auditing via Telegram&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/xdendix" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F726362%2F8c006c90-e5f9-4d09-84fa-c8ff3edee4c3.png" alt="xdendix profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/xdendix" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Dendi Prayogo Hidayat
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Dendi Prayogo Hidayat
                
                
              
              &lt;div id="story-author-preview-content-4802207" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/xdendix" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F726362%2F8c006c90-e5f9-4d09-84fa-c8ff3edee4c3.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Dendi Prayogo Hidayat&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 5&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064" id="article-link-4802207"&gt;
          Building SecOps Recon Bot: Enterprise-Grade Web Auditing via Telegram
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/mlhacks"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;mlhacks&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hackathon"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hackathon&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>automation</category>
      <category>cybersecurity</category>
      <category>python</category>
      <category>security</category>
    </item>
    <item>
      <title>Building SecOps Recon Bot: Enterprise-Grade Web Auditing via Telegram</title>
      <dc:creator>Dendi Prayogo Hidayat</dc:creator>
      <pubDate>Mon, 05 Oct 2026 14:54:48 +0000</pubDate>
      <link>https://dev.to/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064</link>
      <guid>https://dev.to/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/mlh-hackathon"&gt;MLH x DEV Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Built&lt;/strong&gt;&lt;br&gt;
I built SecOps Recon Bot, an automated, asynchronous Telegram bot designed for enterprise-grade web reconnaissance and objective security auditing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;&lt;br&gt;
It allows security analysts, pentesters, and CTF players to perform rapid reconnaissance directly from their phones via Telegram. The bot features three main modules:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTTP Security Headers Audit: Analyzes critical headers (HSTS, CSP, etc.) with automatic protocol fallback and final URL resolution.

Cookie Security Inspector: Audits session cookies for missing Secure and HttpOnly flags.

Sensitive Path Scanner (Dir-Buster Lite): Concurrently brute-forces exposed administrative endpoints (e.g., .env, .git/HEAD) while smartly filtering out generic 301/302 catch-all redirects to prevent false positives.
Finally, it uses Zero Disk I/O to generate a beautifully formatted Markdown report directly in memory and sends it as a downloadable file.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;What inspired it&lt;/strong&gt;&lt;br&gt;
During CTFs and bug bounty hunting, I realized that firing up heavy desktop tools (like Burp Suite or dedicated terminal scanners) just to do a quick initial recon on a target is highly inefficient. I wanted a tool that lives in my pocket, works instantly, and delivers professional, objective data without the noise of false positives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I learned&lt;/strong&gt;&lt;br&gt;
I leveled up my Python architecture skills significantly. I learned how to seamlessly blend synchronous I/O operations (like the requests library) with asynchronous non-blocking frameworks (aiogram) using ThreadPoolExecutor. I also learned how to enforce strict type-guarding with Pylance and how to properly handle HTTP redirect blind spots to ensure the bot always reports the final resolved URL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo&lt;/strong&gt;&lt;br&gt;
Here is a look at the bot's interface and the Enterprise Markdown Report it generates:&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Check out the source code on GitHub:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/xdendix" rel="noopener noreferrer"&gt;
        xdendix
      &lt;/a&gt; / &lt;a href="https://github.com/xdendix/secops_recon_bot_telegram" rel="noopener noreferrer"&gt;
        secops_recon_bot_telegram
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;SecOps Recon Bot&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;An automated, asynchronous Telegram bot designed for enterprise-grade web reconnaissance and objective security auditing. Built as a submission for the MLH Community Event.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Overview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;SecOps Recon Bot is a Red Teaming and Web Security utility that allows security analysts to perform rapid, concurrent reconnaissance directly from Telegram. It is engineered with strict type checking, robust error handling, and Application Performance Monitoring (APM) to ensure production-level stability.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Core Capabilities&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTTP Security Headers Audit:&lt;/strong&gt; Objectively analyzes critical security headers (e.g., HSTS, CSP, X-Frame-Options) with automatic protocol fallback (HTTPS to HTTP) and final URL resolution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cookie Security Flag Inspector:&lt;/strong&gt; Scans target responses for missing &lt;code&gt;Secure&lt;/code&gt; and &lt;code&gt;HttpOnly&lt;/code&gt; flags on session cookies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensitive Path Scanner (Dir-Buster Lite):&lt;/strong&gt; Utilizes thread-pooling to concurrently brute-force common administrative endpoints and sensitive files (e.g., &lt;code&gt;.env&lt;/code&gt;, &lt;code&gt;robots.txt&lt;/code&gt;, &lt;code&gt;.git/HEAD&lt;/code&gt;) while intentionally filtering out generic 301/302 catch-all redirects to eliminate false positives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In-Memory Report Generation:&lt;/strong&gt; Concurrently…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/xdendix/secops_recon_bot_telegram" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Partner Technologies&lt;/strong&gt;&lt;br&gt;
Sentry (Application Performance Monitoring &amp;amp; Error Tracking)&lt;br&gt;
To ensure this tool meets enterprise standards, I integrated the Sentry SDK deep into the application's core. Rather than just wrapping the bot in a generic try-catch block, I utilized Sentry's start_transaction and start_span features to monitor specific reconnaissance operations.&lt;/p&gt;

&lt;p&gt;For example, during the concurrent Sensitive Path scanning, Sentry tracks the performance of the thread pool and monitors HTTP client spans. If a target server drops the connection or times out, Sentry instantly logs the deadline exceedance or internal errors without crashing the bot's main polling loop. This gave me incredible visibility into how the bot performs under the hood when scanning slow or heavily protected targets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8rgbw5wr61k3vcfbpktg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8rgbw5wr61k3vcfbpktg.png" alt="Sentry" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hackathon Experience&lt;/strong&gt;&lt;br&gt;
I built this for the MLH Community Event (CEV). The atmosphere was incredibly inspiring—seeing hackers from all over the world turning ideas into reality pushed me to not just "make a bot that works", but to engineer a production-ready application.&lt;/p&gt;

&lt;p&gt;My biggest takeaway from this event is the shift in my development mindset. Instead of rushing to build features, I focused on clean code, strict type-checking, handling edge cases (like URL redirects), and writing professional documentation. The sense of community and the drive to build something genuinely useful for the cybersecurity space is what I will remember most about this MLH event!&lt;/p&gt;

</description>
      <category>mlhacks</category>
      <category>devchallenge</category>
      <category>hackathon</category>
    </item>
    <item>
      <title>OpsBuddy: A Privacy-First Local AI SysAdmin Mentor (Built with Gemma, Ollama &amp; Sentry)</title>
      <dc:creator>Dendi Prayogo Hidayat</dc:creator>
      <pubDate>Sat, 03 Oct 2026 10:22:21 +0000</pubDate>
      <link>https://dev.to/xdendix/opsbuddy-a-privacy-first-local-ai-sysadmin-mentor-built-with-gemma-ollama-sentry-ijb</link>
      <guid>https://dev.to/xdendix/opsbuddy-a-privacy-first-local-ai-sysadmin-mentor-built-with-gemma-ollama-sentry-ijb</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-03"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;OpsBuddy&lt;/strong&gt;, a local, privacy-first AI mentor designed specifically for SysAdmin and Linux training in a CLI environment. &lt;/p&gt;

&lt;p&gt;I built this for my friend and trainee, &lt;strong&gt;Andre&lt;/strong&gt;, who is currently learning the ropes of server administration. The biggest hurdle for beginners like him is understanding complex error logs without accidentally leaking sensitive server information (like IPs, usernames, or paths) to public cloud AI tools. OpsBuddy solves this by running entirely locally on his machine. It acts as a safe, intelligent sandbox where he can ask technical questions and securely analyze local &lt;code&gt;.log&lt;/code&gt; files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Here is OpsBuddy in action safely analyzing a local log file, along with the deep-dive performance tracing data captured by Sentry!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh6o1npkkfph1vc7bu0k4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh6o1npkkfph1vc7bu0k4.png" alt="Terminal showing OpsBuddy securely analyzing a local error log" width="799" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwb1i594scima3rpbv420.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwb1i594scima3rpbv420.png" alt="Sentry dashboard showing the Waterfall view of AI inference trace" width="799" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/xdendix" rel="noopener noreferrer"&gt;
        xdendix
      &lt;/a&gt; / &lt;a href="https://github.com/xdendix/opsbuddy" rel="noopener noreferrer"&gt;
        opsbuddy
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/xdendix/opsbuddy" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;OpsBuddy is built around a fully open-source and local stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Model:&lt;/strong&gt; Google's &lt;strong&gt;Gemma 2B&lt;/strong&gt; (open-weight model) for fast, concise, and accurate technical mentoring.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Inference:&lt;/strong&gt; &lt;strong&gt;Ollama&lt;/strong&gt; to run the LLM efficiently without internet access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logic &amp;amp; UI:&lt;/strong&gt; &lt;strong&gt;Python&lt;/strong&gt; combined with the &lt;code&gt;rich&lt;/code&gt; library for a beautiful, colorful CLI experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent Tracing:&lt;/strong&gt; &lt;strong&gt;Sentry SDK&lt;/strong&gt; to monitor the AI's performance. I implemented &lt;code&gt;start_transaction&lt;/code&gt; and &lt;code&gt;start_child&lt;/code&gt; spans to track the exact latency of the local inference streaming process whenever Andre interacts with the agent, ensuring the application remains responsive.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation is the absolute backbone of this project. By utilizing open-weight models like Gemma 2B and open local harnesses like Ollama, OpsBuddy guarantees absolute data privacy. Andre can command the AI to analyze sensitive SSH, database, or application logs without the fear of that data being sent to a closed, third-party API. Open innovation made it possible to build a capable, free-to-use mentor that respects user data sovereignty.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Best Use of Gemma&lt;/li&gt;
&lt;li&gt;Best Use of Sentry Agent Tracing&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>python</category>
    </item>
  </channel>
</rss>
