No description
  • C++ 62.8%
  • JavaScript 29.1%
  • CSS 6.6%
  • HTML 1.2%
  • CMake 0.3%
Find a file
2025-08-29 18:22:01 +02:00
.woodpecker Filling rows through constructor. Query returns total count together with records to allow pagination in frontend. Optimised UI for small screens. 2025-08-29 18:22:01 +02:00
docs logo added as draft, added 7z to build script (something is wrong with the docker image...) 2025-07-18 18:23:08 +02:00
src Filling rows through constructor. Query returns total count together with records to allow pagination in frontend. Optimised UI for small screens. 2025-08-29 18:22:01 +02:00
utils cosmetic changes on buttons, placing of buttons, fixed typo, re-added git (for now). 2025-07-18 17:59:57 +02:00
webroot Filling rows through constructor. Query returns total count together with records to allow pagination in frontend. Optimised UI for small screens. 2025-08-29 18:22:01 +02:00
.gitignore Working draft. Compiles and runs, that's it... 2023-07-28 17:23:42 +02:00
CMakeLists.txt Tests with reengineered json parsing. Cleaned up WebBase / Web some more. WIP Push. 2025-07-10 13:21:02 +02:00
LICENSE Adding nlohmann::json for quick json serialisation, introducing classes for DB as well as for Webserver, general spring cleaning, removed sqlorm and replaced with own DB class, 2023-08-04 18:09:37 +02:00
README.md added todo file, added logo to readme, switched to new woodpecker release plugin 2025-07-18 18:41:05 +02:00
TODO.md added todo file, added logo to readme, switched to new woodpecker release plugin 2025-07-18 18:41:05 +02:00

Ditty Bopper

Ditty Bopper Logo

Copyright (C) 2023-25 by Krogoth of Ministry of Zombie Defense.

Introduction

We sift through tons of feeds every day to extract the threat intel which is relevant for us. While there exist some solutions to help in doing so, we haven't found the right one for us. Most are not self-hostable, which is important to us.

So we are working on our own toolchain and our own tools.

dittybopper is the tool we use to work on data we gather with slurp.

Features

dittybopper let's you look through your feeds and lets you act on intel:

  • store articles in your local read-it-later tool Shiori
  • push a message through ntfy onto your (mobile) device
  • write a note to a community on a Lemmy instance for further discussions
  • send the article to a Matrix channel
  • archive articles
  • load a filtered list of articles through an RSS / ATOM API into another application

dittybopper enforces 2FA with TOTP on its users and contains an RBAC authorization system. The webapp is proxy aware.

Installation

Usage

Setup and run slurp to fill a database with articles from sources you want to work with.

If you already have a copy of dittybopper, just run it in daemon mode and connect to its webserver to sift through your feeds.

./dittybopper --start_webserver --port 8080 --webfiles_root . --source path_to.sqlite

If you haven't a copy yet, you might want to compile it yourself. See below for that.

It is good practice to bind the daemon to localhost and add an nginx or similar reverse proxy in front of dittybopper to add TLS.

While we use dittybopper on a daily base, it is still work in progress. Please use with care.

Compile for yourself

To compile dittybopper, you will need these Debian packages (or the equivalent for your distribution).

sudo apt install libfmt-dev nlohmann-json3-dev libmrss0-dev libsqlite3-dev  libre2-dev libcurl4

And you will need to compile the following libraries yourself because there are no packages yet or they are a tad too old (at least at the current date on Debian stable).

Please check the respective projects documentation for the correct way to ompile and install.

# https://github.com/libcpr/cpr

$ git clone https://github.com/libcpr/cpr.git
$ cd cpr && mkdir build && cd build
$ cmake .. -DCPR_USE_SYSTEM_CURL=ON
$ cmake --build . --parallel
$ sudo cmake --install .

# https://crowcpp.org/master/getting_started/setup/linux/

# https://github.com/paolostivanin/libcotp

$ git clone https://github.com/paolostivanin/libcotp.git
$ cd libcotp
$ mkdir build && cd $_
$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ../
$ make
# make install

To finally compile dittybopper, run these commands

$ cmake -DCMAKE_BUILD_TYPE=Release -S . -B build
$ cmake --build build --target dittybopper j 6

Please also have a look at the Libraries and Sources we use section for further details.

Libraries and Sources we use

dittybopper uses these libraries and sources authored by different authors:

  • SQLite3
  • CLI11
  • Crow++
  • libmrss
  • fmt
  • curl and libcpr (curl for people)
  • libre2
  • libcotp
  • Nlohmann JSON
  • stduuid
  • vanjs
  • tailwindcss
  • sortable

A thank you to all the developers. Your work is very much appreciated.

Licence

Please see enclosed LICENCE file for details.