A powerful micro/blogging engine with IndieWeb features.
- monolithic BEAM app written in Elixir with no external database (everything is stored in Mnesia)
- your site is dynamic and static at the same time
- it's not a traditional "static site generator", it's very much a long-running server
- but all pages are saved to static HTML files for performance (served from a frontend server like h2o)
- uniform data model: every page is a microformats2 style object
- special object types are used for stuff like feeds (for dynamic feeds,
childrenare the result of a query) - and they create more virtual pages (e.g. dynamic feeds are paginated:
/notes→/notes/page1,/notes/page2…)
- special object types are used for stuff like feeds (for dynamic feeds,
- asset management: automatic compression and cache busting
- local password authentication, IndieAuth app authorization
- Micropub is the primary way of working with pages
- micro-panel is integrated as the post editing interface
- Webmentions are supported for distributed conversations across websites
- Salmentions are sent as a natural consequence of the architecture (received mention → update event → mentions are sent)
- WebSub notifications are sent for quick updates in readers
Mix tasks:
sweetroll2.setupcreates the databasesweetroll2.bootstrapadds initial postssweetroll2.dropdeletes the database
Environment variables:
MIX_ENV: inprod, logging will be in JSON (ready for shipping somewhere with something), scheduled background tasks will be active, the plug debug middleware won't be active, etc.SR2_SERVER_SOCKETorSR2_SERVER_PORT: where to listen for connections (default is port 6969)SR2_PASSWORD_HASH: Argon2 hash of the admin password (REQUIRED, e.g.$argon2id$v=19$m=…)SR2_CANONICAL_HOME_URL: scheme and hostname (NO SLASH) of the website (REQUIRED, e.g.https://example.com)SR2_WEBSUB_HUB: URL of the WebSub hub to use (defaulthttps://pubsubhubbub.superfeedr.com/) (make sure to also modify in h2o settings for static files!!)SR2_STATIC_GEN_OUT_DIR: where to write static HTML (defaultout; also the h2o scripts use it!)
This is free and unencumbered software released into the public domain.
For more information, please refer to the UNLICENSE file or unlicense.org.
(Note: different licenses apply to dependencies.)