
SiloRider
=========

SiloRider is a command-line utility that lets you implement the `POSSE`_ model
on a website. This is how it works:

- It reads your website's main page (or whatever URL you supply) and looks for
  `Microformats`_ markup.
- It reads a configuration file where you describe which "silos" (*i.e.*
  external services) you want to post your content to.
- It reads a local cache file to figure out which content has already been
  posted where, so it only posts new content.
- It actually posts that content to each silo.


Supported Silos
---------------

Right now, the following silos are supported:

- `Mastodon`_: an open, federated social network and microblogging service.
- `Twitter`_: a proprietary social network and microblogging service.
- Print: a debug silo that just prints entries in the console.


Quickstart
----------

SiloRider will need to read a configuration file in `INI`_ format. The minimum requirement is to define at least one "silo" using a ``silo:<name>`` section::

    [silo:my_mastodon]
    type: mastodon
    url: https://mastodon.social

This defines one Mastodon silo to which you want to post your entries.

You can then run::

    silorider auth my_mastodon 

This command will authenticate your Mastodon account and provide SiloRider with the permission to post to your timeline. The authorization tokens are stored in a cache file that defaults to ``silorider.db``, next to the configuration file. Later, this cache will also contain the list of entries already posted to each silo.

Once authenticated, you can run::

    silorider populate https://yourwebsite

This will populate the cache with the existing entries, since you probably don't want the first run of SiloRider to cross-post your last dozen or so entries in one go.

Later, when you post something new, you can then run::

    silorider process https://yourwebsite

This will pick up the new entries and post them to Mastodon. You can run this command again regularly... if there's something new, SiloRider will cross-post it to the configured silos. If not, it will just exit.


.. _POSSE: https://indieweb.org/POSSE
.. _Microformats: http://microformats.org/
.. _Mastodon: https://joinmastodon.org/
.. _Twitter: https://twitter.com/
.. _INI: https://en.wikipedia.org/wiki/INI_file

