This application is compatible with 37signals' Once platform.
When the Once installer prompts for a Docker image path, enter:
ghcr.io/markhallen/slack-github-threads:latest
Or pin to a specific version (e.g., ghcr.io/markhallen/slack-github-threads:1.0.0).
The app meets all Once requirements:
| Requirement | Status |
|---|---|
| Docker container | Yes |
| HTTP on port 80 | Yes |
Health check at /up |
Yes (returns 200 OK) |
Persistent data in /storage |
Yes (logs only) |
Required (set in Once admin UI):
SLACK_BOT_TOKEN— Slack bot token (starts withxoxb-)GITHUB_TOKEN— GitHub personal access token (starts withghp_)
Automatically provided by Once:
NUM_CPUS— Used to set Puma worker count (falls back toWEB_CONCURRENCY, then default of 2)SECRET_KEY_BASE— Injected but not used by this appDISABLE_SSL— Injected but not used (SSL is handled by the reverse proxy)
The app is stateless — no database or file uploads. The /storage volume is used only for log files at /storage/log/. When running outside Once, logs fall back to log/ in the app directory.
The Once hook scripts at /hooks/pre-backup and /hooks/post-restore are no-ops because the app has no stateful data to back up. Source files are in once/hooks/ in the repository.