- C++ 62.8%
- JavaScript 29.1%
- CSS 6.6%
- HTML 1.2%
- CMake 0.3%
|
All checks were successful
ci/woodpecker/push/build_and_release Pipeline was successful
|
||
|---|---|---|
| .woodpecker | ||
| docs | ||
| src | ||
| utils | ||
| webroot | ||
| .gitignore | ||
| CMakeLists.txt | ||
| LICENSE | ||
| README.md | ||
| TODO.md | ||
Ditty Bopper
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.
