Sweetroll2
A powerful micro/blogging engine with IndieWeb features (abandoned)
Install / Use
/learn @valpackett/Sweetroll2README
Sweetroll2 (is abandoned, sorry)
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
Usage
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!)
License
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.)
Related Skills
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.8kCommit, push, and open a PR
