aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2023-09-13 14:18:15 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2023-09-13 14:18:15 +0300
commitb858cad9ad70ea6dd307559b3169730097fd6c29 (patch)
tree8b72dabf0294a9d69a72304876a2321989e8be12 /README.md
parentcc8f1632a859a414dd3f7ab3d23d341c36a36a6a (diff)
Add some documentation
Diffstat (limited to 'README.md')
-rw-r--r--README.md22
1 files changed, 21 insertions, 1 deletions
diff --git a/README.md b/README.md
index 1283ebe..a5944b2 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,22 @@
# aggro
-A feed manipulator &amp; aggregator
+A feed manipulator &amp; aggregator built with Python.
+
+Aggro is a tool for creating, manipulating and serving syndicated feeds based on data from arbitrary web pages with a post-like structure. Aggro is capable of sourcing content by scraping HTML, using JSON APIs, using existing RSS/Atom feeds and reading Facebook posts. These content streams can be manipulated (filtered, mapped over, concatenated, digested) to create new, transformed feeds.
+
+Aggro is based on a plugin system that is configured using a declarative JSON configuration file called Aggrofile. An Aggrofile defines the used plugin instances and a directed acyclic graph (DAG) between the plugins. Plugins are triggered either on a defined schedule or by propagating data through the DAG.
+
+Aggro was born from a concrete need to aggregate post-like data from various websites, such as event venues in my city and artists on social media. The design of Aggro is very pragmatic: features are implemented if I need them for my personal use case. As such, Aggro is a very personal project. Aggro is not mature and probably never will be.
+
+Aggro is free and open source, MIT licensed software.
+
+## Installation and running
+
+Aggro is intended to be run as a long-lived process on a server. I personally run it as a docker container on a DigitalOcean VPS, built with the Dockerfile in the repository root. See `docker-compose.yml` for a usage example. See the `Aggrofile` for a configuration example.
+
+## Plugins
+
+Plugin documentation is a work in progress. For now, check out the implementation (see `plugins -> *Plugin.py -> Plugin.__init__`) to figure out what parameters to give to each plugin.
+
+## Author
+
+Jan Tuomi <<jans.tuomi@gmail.com>>