A standalone tool for archiving Slack messages into a static site.
GitHub Actions can run the archive update daily and commit new output.
SLACK_TOKEN and CHANNELS_ALLOWLIST env varsupdate-archive.yml to a folder named .github/workflows/CHANNELS_ALLOWLIST env var in update-archive.ymlSLACK_TOKEN./gradlew test
./gradlew --quiet updateChatArchive
Configuration (environment variables):
SLACK_TOKEN (required; Slack Bot token) ⚠️ warning: keep this secret!CHANNELS_ALLOWLIST (required; comma-separated channel names, e.g. #general,#random)OUTPUT_DIR (optional; relative path for site output, default docs)STATE_DIR (optional; relative path for cursor state, default state)LOOKBACK_DAYS (optional; how many days to re-fetch, default 1)Output:
docs/daily/<channel>/<YYYY-MM-DD>.mddocs/daily/<channel>/index.mddocs/index.mdSlack app setup:
xoxb-) into SLACK_TOKEN.CHANNELS_ALLOWLIST.Required Slack scopes:
channels:read (list public channels)channels:history (read public channel history)users:read (resolve user display names)Permalinks are resolved via chat.getPermalink. If Slack returns missing_scope, add the scope Slack reports and re-install the app.
GitHub Pages:
docs/ directory is intended for publishing via GitHub Pages.If you run this bot and archive data relevant to Fineract, please list your instance here. These also serve as working examples if you're looking for extra help installing the archiver.
The original intent of this code was to archive every public Fineract chat message into a public, index-able, simple/static HTML website.
See LICENSE and NOTICE.